【发布时间】:2018-06-09 13:46:10
【问题描述】:
所以基本上,我只是想将 100 添加到数组 test 中可被 3 整除的元素并打印出 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????
【问题讨论】:
-
您需要将更新的值存储回您的数组,而您没有这样做。对于您的情况,您可以使用
array#map。 -
forEach不会更改数组,并且从您传递给forEach的函数返回一个值不会做任何事情。 -
你的变量数组 test 和元素也被命名为 test。用 s 调用数组测试是个好主意
-
@Phil 那行不通,OP 想要整个
test数组将 100 添加到可被 3 整除的数字上。 -
@BlueEagle 请阅读我链接的原始问题,它展示了如何使用
forEach来更改数组。如果你想使用map,它将返回一个新数组。这是一个非常冗长的代码,供您查看如何操作:jsfiddle.net/gmzm51hw
标签: javascript arrays function