我得到了一个充满整数的数组,我想用每个整数及其跟随者的平均值创建一个新数组。为此,我尝试使用 map
函数。
var arr = [1,2,3,4];
arr.map(function(a, b){
return (a + b / 2);
});
我相信这是有效的,就好像我在控制台中运行它一样,一切都按预期工作,但问题是它在设置挑战的地方返回未定义。 challenge is set here .有什么我想念的愚蠢的东西吗?
最佳答案
您可以使用 Array#map
的回调参数,它是元素本身、索引和对数组的引用。然后将结果分配给一个变量并跳过第一个元素,因为您可以根据需要再获得一个元素。
var arr = [1, 2, 3, 4],
result = arr.map(function(a, i, aa) {
return (aa[i - 1] + a) / 2;
});
result.shift();
console.log(result);
另一种可能的解决方案 Array#reduce
, 哪个映射更多你的尝试。
var arr = [1, 2, 3, 4],
result = [];
arr.reduce(function(a, b) {
result.push((a + b) / 2);
return b;
});
console.log(result);
关于javascript - 从 map 函数返回 undefined - 代码 war ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41139108/