所以基本上,我只是试图将100加到可被3整除的数组test
的元素并打印出test
数组。我不明白的是,当我在函数中使用console.log(test)
时,它打印出满足条件的数组,即100被添加到可被3整除的元素,但是当我在它之外使用它时功能,它没有。这是为什么?有没有办法打印出测试数组,条件在函数外部满足?我刚开始学习javascript,所以我有点像初学者。
var test = [12, 929, 11, 3, 199, 1000, 7, 1, 24, 37, 4,
19, 300, 3775, 299, 36, 209, 148, 169, 299,
6, 109, 20, 58, 139, 59, 3, 1, 139
];
test.forEach(function(test){
if(test % 3 === 0){
test+=100;
}
console.log(test);//prints out test array if condition met
});
//console.log(test); //doesn't print test array with if condition met????
答案 0 :(得分:1)
forEach
方法不直接修改原始数组,但回调函数可能会修改它。回调与元素,索引和数组本身一起传递。
var test = [12, 929, 11, 3, 199, 1000, 7, 1, 24, 37, 4,
19, 300, 3775, 299, 36, 209, 148, 169, 299,
6, 109, 20, 58, 139, 59, 3, 1, 139
];
test.forEach(function(item, index, test){
if(item % 3 === 0){
test[index] = item+=100;
}
});
console.log(test);