**已关闭。**此问题为not reproducible or was caused by typos。目前不接受答案。
这个问题是由一个打字错误或一个无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
2天前关闭。
Improve this question
我正在努力学习JavaScript。现在,我正在用数组、JSON对象以及sort和reduce方法做实验。这个实验是为了找到www.example.com的NumberOfDiscIntersections任务的一个很好的解决方案Codility.com。我已经看到了周围的解决方案,我正在尝试重现我的解决方案,这样我就真的得到了这个方法。
我现在的代码已经快完成了。我在这里要问的是:为什么在执行以下代码的输出中得到最后一个“undefined”元素?
这是一个完整的JavaScript代码:
C = [2, 1, 1, 3, 2, 3];
answer = solution(C);
console.log(answer);
//circle radius varies from 0..2147483647
function solution(A) {
//marker = {spot:0, openers:0, closers:0};
const N = A.length;
const points = [];
let left = 0;
let right = 0;
// First, I count all borders
for (i = 0; i < N; i++) {
left = i - A[i];
right = i + A[i];
points.push({
"position": left,
"openers": 1,
"closers": 0
});
points.push({
"position": right,
"openers": 0,
"closers": 1
});
}
console.log("points before sort:")
for (item of points) {
console.log(item);
}
points.sort((a, b) => {
if (a.position < b.position) {
return -1;
} else if (a.position > b.position) {
return 1;
}
return 0;
});
console.log("points after sort:")
for (item of points) {
console.log(item);
}
let parseable = points.reduce((acc, object) => {
var index = acc.map((o) => o.position).indexOf(object.position);
if (index == -1) {
acc.push(object);
} else {
acc[index].openers += object.openers;
acc[index].closers += object.closers;
}
return acc;
}, []);
console.log("points after reduce:")
for (item of parseable) {
console.log(item);
}
}
Thia是我的控制台输出:
排序前的点数:位置:-2,开启器:1、闭门器:0 }位置:2、开启剂:0,闭合器:1 }职务:0,开启程序:1、闭门器:0 }位置:2、开启剂:0,闭合器:1 }职务:1、开启器:1、闭门器:0 }位置:3、开启剂:0,闭合器:1 }职务:0,开启程序:1、闭门器:0 }位置:6、开启器:0,闭合器:1 }职务:2、开启剂:1、闭门器:0 }位置:6、开启器:0,闭合器:1 }职务:2、开启剂:1、闭门器:0 }位置:8、开启器:0,闭合器:1 }分后排序:位置:-2,开启器:1、闭门器:0 }位置:0,开启程序:1、闭门器:0 }位置:0,开启程序:1、闭门器:0 }位置:1、开启器:1、闭门器:0 }位置:2、开启剂:0,闭合器:1 }职务:2、开启剂:0,闭合器:1 }职务:2、开启剂:1、闭门器:0 }位置:2、开启剂:1、闭门器:0 }位置:3、开启剂:0,闭合器:1 }职务:6、开启器:0,闭合器:1 }职务:6、开启器:0,闭合器:1 }职务:8、开启器:0,闭合器:1 }分后减少:位置:-2,开启器:1、闭门器:0 }位置:0,开启程序:2、闭门器:0 }位置:1、开启器:1、闭门器:0 }位置:2、开启剂:2、闭门器:2 }职务:3、开启剂:0,闭合器:1 }职务:6、开启器:0,闭合器:2 }职务:8、开启器:0,闭合器:1 }未定义
为什么我有这个'未定义'的项目在减少数组的结束?
1条答案
按热度按时间2skhul331#
因为您不会从
solution
函数返回任何内容。answer
变量的默认值为undefined
,即在控制台中记录的值。return
来自函数的内容,answer
变量可以保存这些内容。感谢