【发布时间】:2014-07-09 23:27:54
【问题描述】:
如果我有一个 JSON 数组:
arrays =
[
[
undefined,
",",
" ",
"simple"
],
[
undefined,
null,
" ",
"phrase"
],
[
undefined,
",",
" ",
"one"
],
[
undefined,
null,
" ",
"another"
],
[
undefined,
null,
" ",
"phrase"
]
]
我想从 undefined 和 null 值中过滤:
arrays.forEach(function(array){array.filter(function(n){return !!n})});
或
arrays.forEach(function(array){array = array.filter(function(n){return !!n})});
但它返回相同的数组,没有任何变化。
否则,如果我直接使用内部数组,它可以工作:
rest_words[0].filter(function(n){return !!n});
=> [",", " ", "simple"]
为什么forEach() 不允许修改数组?它是否仅按值迭代?通过迭代来修改数组的最佳解决方案是什么?
我希望除了通过for(i=0, i<arrays.length, i++){arrays[i] = arrays[i].filter(...)} 迭代之外还有更多的东西
【问题讨论】:
标签: javascript arrays for-loop filter