【问题标题】:how to search for the value with a certain index in an array and modify its value?如何在数组中搜索具有特定索引的值并修改其值?
【发布时间】:2020-10-14 11:05:10
【问题描述】:

我有两个数组,第一个包含两个数字,第二个包含 12 个值。

firstArray = [0, 6];

secondArray = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];


我想获取第一个数组的数字并检查第二个数组的索引是否匹配,然后更改匹配的值。

在这种情况下,输出将是

secondArray = ["blank", "February", "March", "April", "May", "June", "blank", "August", "September", "October", "November", "December"];

我试图循环获取 firstArray 中的值,但我得到的是索引而不是值

    for (let i = 0; i < this.state.lastIndex.length; i++) {

    }

干草 我该怎么做? 有什么办法比 for 循环更直接?

感谢您的帮助

【问题讨论】:

  • "有什么方法可以使它比使用 for 循环更直接?" 如果第一个数组中只有两个项目,那么你可以只做 @ 987654324@和secondArray[firstArray[1]]
  • secondArray[firstArray[0]] = "blank"secondArray[firstArray[1]] = "blank"

标签: javascript arrays for-loop


【解决方案1】:

对于oneliner,您可以使用来自Array.prototype 的地图:

secondArray = secondArray.map((element, index) => firstArray.includes(index) ? "blank" : element )

请注意 map 函数返回一个新数组,而不是修改原来的数组。

编辑:删除了多余的return 和箭头函数体周围的花括号

【讨论】:

  • 谢谢,是我正在寻找的完美解决方案!
【解决方案2】:
firstArray = [0, 6]; 
secondArray = ["January", "February", "March", "April", "May", "June", "July","August", "September", "October", "November", "December"];

for(let i = 0; i < firstArray.length; i++) {
    secondArray[firstArray[i]]="blank";
}
console.log(secondArray);

PS:你需要做的只是循环遍历第一个数组,并更新第二个数组的索引值

【讨论】:

    【解决方案3】:

    firstArray.map(e=>{if(secondArray[e]){secondArray[e]="blank"}})

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-12
      • 1970-01-01
      • 2019-07-10
      • 2019-09-16
      • 2021-05-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多