JavaScript's'对于每个'误解
JavaScript's 'forEach' misunderstanding
此功能正常工作:
function task02(arr) {
var out = [];
arr = arr.forEach(function(item, i){
(item > 0) ? out.push(1) : out.push(0);
});
return out;
}
而这个不是(输出undefined
(:
function task02(arr) {
arr = arr.forEach(function(item, i){
(item > 0) ? item = 1 : item = 0;
});
return arr;
}
我尝试过同时使用item
和item[i]
,但都不起作用。有人能向我解释一下,为什么这不起作用?
有人能向我解释一下,为什么这不起作用?
JavaScript通过值传递/调用/分配。这意味着给一个变量赋值不会神奇地改变另一个变量(或数组元素(的值。
更简单的例子:
var foo = 42;
var bar = foo;
foo = 21;
则CCD_ 4仍将具有值CCD_。
在您的情况下,分配给item
不会更改数组元素。
和往常一样,如果您使用不熟悉的方法,请先阅读其文档。
第二个示例中的回调函数没有任何副作用。这就是.forEach
(在数组上迭代,但返回undefined
(和.map
、.filter
、.reduce
等数组方法的主要区别,它们迭代、对每个项执行回调并返回修改后的数组。
如果你想避免临时数组,在这种情况下你应该使用Array.map
:
function task02(arr) {
return arr.map(function(item, i){
return (item > 0) ? 1 : 0;
});
}
相关文章:
- 如何包含特定于每个视图angularjs的javascript文件
- 如何在category.php中执行jquery,这应该适用于类别wordpress中的每个帖子
- 动画功能不应用于每个元素
- Instagram客户端ID是否特定于每个使用它的人
- 如何将此函数应用于以下JsonML中的每个匹配元素
- 我想放一个JS函数,它适用于列表的所有元素,但我可以't将其复制到每个元素中
- 如何确定相对于内部每个字符的页面的位置(x,y)跨越javascript
- 为什么不将小写应用于以下替换链中的每个单词
- jQuery拖放然后打开特定于每个列表项的警报
- 离子事件侦听器在每个屏幕上触发,只想应用于一个控制器
- 如何将子字符串应用于数组中的每个字母
- Mootools每个函数只适用于数组中的最后一个基金
- 函数只作用于每个元素的第一个子元素
- jQuery如何使slideToggle应用于每个项目
- 我使用jquery next和cost选项只选择一个元素,但这适用于每个元素的类
- 添加一个相当于每个锚点的onMouseDown属性'类或文档中的s HREF属性
- 获取高度并应用于每个元素失败
- 将我的视频皮肤应用于每个视频标签(原版 java 脚本)
- 让函数分别作用于每个元素
- 使. slidetoggle特定于每个列表