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

Check array string and push string index to another variable Javascript

Javascript 很新,编码一般!

我基本上是想测试数组中的字符串,如果当字符串 returns 某个值时,我想获取该字符串在数组中的索引并将索引存储在另一个变量中.

我遇到的问题(我认为)是,一旦我确认它是我正在寻找的字符串,我不确定提取和推送索引的正确语法...抱歉如果我没有很好地解释自己,请提前。

这是我的:

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))

你可以这样做(使用 forEach):

(请注意,通过允许它扫描任何 searchText 而不是硬编码 'contraband' 来使您的函数更通用是个好主意)

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]

你也可以这样做(减少):

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'))