3 回答
TA贡献1818条经验 获得超8个赞
数组map接受参数为(item,index)。在您的情况下x,表示数组元素将是 1,2,3,4 等等。因此 arr[1] 将是第一个为 1 的元素,但arr[4]由于fifth索引处不存在元素而未定义。您可以替换arr[x]为 onlyx或 witharr[index]
var arr = [1, 2, 3, 4];
var result = arr.map(function(x, index) {
console.log('Array element', x)
if (arr[index] >= 2) {
return arr[index] + 10;
} else {
return arr[index] - 10;
}
});
console.log(result);
TA贡献1829条经验 获得超7个赞
var arr = [1, 2, 3, 4];
var result = arr.map(function(val, indx) {
if(arr[indx] >= 2) {
return arr[indx] + 10;
} else {
return arr[indx] - 10;
}
});
您需要使用索引而不是值
或者你可以像专业人士一样做
const result = arr.map((val, indx) => {
return (val >= 2) ? val+10 : val -10
});
TA贡献1833条经验 获得超4个赞
jsmap函数迭代元素(在您的情况下)而不是索引。您的 x 变量是迭代中的当前元素
var arr = [1, 2, 3, 4];
var result = arr.map(function(x) {
if(x >= 2) {
return x + 10;
} else {
return x - 10;
}
});
console.log(result);
添加回答
举报