簡體   English   中英

如何在數組中找到某個元素並進行更改?

[英]How to I find a certain element in an array and change it?

我需要創建一個函數來查找元素“ Tolkn”,並將其更改為“ Tolkien”。

changeName = (arr) => {
  if (arr === "Tolkn") {
    arr.push("Tolkien")
  }
  return arr;
}

像這樣修改你的功能

 let arr = ['test', 'test2', 'Tolkn', 'test3']; let changeName = (inpArr) => { let index = inpArr.findIndex(function(itm) { return itm == 'Tolkn'; }) if (index === -1) { return inpArr; } inpArr[index] = 'Tolkien'; return inpArr; }; console.log(changeName(arr)); 

forEach另一種方式

 let arr = ['test', 'test2', 'Tolkn', 'test3']; function changeName(arr) { let output = []; arr.forEach(function(itm) { if (itm == "Tolkn") { output.push("Tolkien") } else { output.push(itm); } }); return output; } console.log(changeName(arr)); 

使用正確的值制作副本(由於使用@MattMorgan,現在可以使用更簡潔的格式)。

 var arr = ["Tolkn","a","some","Tolkn"]; var changeName = arr.map.bind(arr, elem => elem === "Tolkn" ? "Tolkien" : elem); arr = changeName(arr); console.log(arr); 

或就地更換:

 var arr = ["Tolkn","a","some","Tolkn"]; var changeName = arr.forEach.bind(arr, (val, ind) => {arr[ind] = (val === "Tolkn" ? "Tolkien" : val)}); changeName(arr); console.log(arr); 

如果您不介意可能的隱藏“ -1”屬性,則為簡短版本:

 let changeName = arr => (arr[arr.indexOf("Tolkn")] = "Tolkien", arr) console.log( changeName( ['Tolkn'] ) ) // ['Tolkien'] console.log( changeName( ['Talkn'] ) ) // ['Talkn'] 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM