如果条件为真,则推入数组

Pushing in an array if the condition is true

我有以下图表:

const array = [
  ["one", true],
  ["two", false],
  ["three", false],
  ["four", true]
]

我希望在值为 true 时添加此变量:

const add = ["ok"]

所以最后看起来像这样:

[
  [ 'one', true, 'ok' ],
  [ 'two', false ],
  [ 'three', false ],
  [ 'four', true, 'ok' ],
]

目前,我正在尝试 .map 方法:

const testBoolean = array.map(el => {
  if (el[1] === true){
    array.push(add)
  }
})

console.log(array)

但我不知道在哪里告诉它推送到第 3 行...

感谢您的帮助,祝您有愉快的一天:) !

如果你的意思是 forEach,请不要使用 map。只有在需要结果数组时才使用 map - 在这种情况下 testBoolean 将是一个 map

你想要这个

const array = [
  ["one", true],
  ["two", false],
  ["three", false],
  ["four", true]
]
const add = ["ok"]

array.forEach(el => {
  if (el[1] === true) {  // or just if (el[1]) if you are sure it is always a boolean
    el.push(...add) // or add[0]
  }
})

console.log(array)

使用 forEach 简单地遍历数组并检查第一个索引是否为真。 对于布尔值,您无需将其与 true 或 false 进行比较。

const array = [
  ["one", true],
  ["two", false],
  ["three", false],
  ["four", true]
];

const add = ["ok"]

array.forEach(item => {
    if(item[1]){
    item.push(...add);
  }
});

console.log(array)

forEach

的文档

另一种方式:

const array = [
  ["one", true],
  ["two", false],
  ["three", false],
  ["four", true]
];

const add = ["ok"];


for (const item of array) {
  item[1] && item.push(add[0]);
}