And*_*rev 6 javascript foreach dictionary cycle
因此,给定数组,我有一个简单的任务:let arr = [true,false,true,false,true]; 我需要将真假改为假,反之亦然。我已经通过for循环做到了这一点:它工作正常。
现在,我正在尝试对forEach进行同样的操作,但我不知道为什么这行不通。所以,这是我的代码:
for (let i = 0; i < arr.length; i++) {
if (arr[i] === true) arr[i] = false;
else arr[i] = true;
} // it works
// for some reason, this doesn't
arr2.forEach(el => el === true ? el = false : el = true);
console.log(arr)
//Neither this:
arr.forEach(el => el === true && el = false || el === false && el = true);
console.log(arr)
Run Code Online (Sandbox Code Playgroud)
该地图也不起作用:有人可以指出我的错误并解释我做错了什么吗?也许显示其他解决方法?使用过滤器,减少还是更可取?单线解决方案是高度首选的。谢谢您的回答!
您需要的是Array.prototype.map,因为分配el与分配不同arr[i](它不会改变数组):
arr2 = arr2.map(el => el === true ? false : true);
Run Code Online (Sandbox Code Playgroud)
可以简化为:
arr2 = arr2.map(el => !el);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
79 次 |
| 最近记录: |