oks*_*mer 1 arrays foreach boolean typescript
我意识到当我尝试使用forEach或map函数更改布尔数组的值时,这些值不会改变。我必须构造一个 for 循环并按索引更改元素。我想知道为什么会这样?
我认为您对工作方式forEach()和map()工作方式的理解有缺陷。
forEach()forEach()为数组中的每个元素调用回调方法,但本身不会更改数组。要实际使用 更改数组forEach(),您必须在回调函数中使用索引:
const array = [true, true];
array.forEach((v, i, a) => a[i] = !v);
console.log(array); // [false, false]Run Code Online (Sandbox Code Playgroud)
map()与 类似forEach(),map()不会改变它被调用的数组。它对数组中的每个元素应用回调函数,并返回一个包含转换后元素的新数组。这意味着您必须将map()操作的结果分配回一个变量:
const array = [true, true];
const result = array.map(v => !v);
console.log(result); // [false, false]Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1115 次 |
| 最近记录: |