我得到了一个充满整数的数组,想要创建一个新数组,其中包含每个整数的平均值和他的追随者。为此,我尝试使用map
函数。
var arr = [1,2,3,4];
arr.map(function(a, b){
return (a + b / 2);
});
我相信这是有效的,就好像我在控制台中运行它一切都按预期工作,但问题是它返回未定义的挑战设置。 challenge is set here。{{3}}。我错过了一些愚蠢的东西吗?
答案 0 :(得分:2)
您可以使用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);

答案 1 :(得分:0)
基本解决方案可能是迭代。
foo = function(arr){
var result=[];
for( var i=0; i<arr.length-1; i++) {
result.push((arr[i]+arr[i+1])/2)
}
return result;
}
答案 2 :(得分:0)
你应该了解map()或reduce()或filter