检查数组字符串并将字符串索引推送到另一个变量Javascript [duplicate]

问题描述 投票:0回答:1

对于Javascript和编码来说是新手!

我基本上是在测试数组中的字符串,如果字符串返回某个值,那么我想获取该字符串在数组中的索引,并将索引存储在另一个变量中。

我(我认为)的问题是,一旦我确定这是我要查找的字符串,就不确定要提取并推送索引的正确语法。如果我事先表示歉意, '对自己的解释不是很好。

这是我所拥有的:

let freightItems = ['contraband', 'clear', 'contraband', 'clear'];

function scan(freightItems) {

  let contrabandIndexes = [];
  
  freightItems.forEach(str => {
    if (str === 'contraband') {
        freightItems.push(contrabandIndexes);
    }
  })
  
  return contrabandIndexes;
}

console.log(scan(freightItems))
javascript arrays indexing push
1个回答
0
投票

您可以这样(使用forEach):

((注意,通过允许其扫描任何searchText而不是硬编码“违禁品”来使您的函数更通用,是一个好主意)

let freightItems = ['contraband', 'clear', 'contraband', 'clear'];

function scan(freightItems, searchText) {

  let contrabandIndexes = [];
  
  freightItems.forEach((str, index) => {
    if (str === searchText) {
        contrabandIndexes.push(index);
    }
  })
  
  return contrabandIndexes;
}

console.log(scan(freightItems, 'contraband'))

输出

[0, 2]

您也可以这样(用reduce):

let freightItems = ['contraband', 'clear', 'contraband', 'clear'];

function scan(freightItems, searchText) {
 
  return freightItems.reduce((aggArr, str, index) => {
    if (str === searchText) {
        aggArr.push(index);
    }
    return aggArr;
  }, [])
}

console.log(scan(freightItems, 'contraband'))
© www.soinside.com 2019 - 2024. All rights reserved.