我需要创建一个函数来查找元素“Tolkn”并将其更改为“Tolkien”。
changeName = (arr) => {
if (arr === "Tolkn") {
arr.push("Tolkien")
}
return arr;
}
答案 0 :(得分:2)
像这样修改你的功能
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));
答案 1 :(得分:1)
使用正确的值制作副本(由于@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);
答案 2 :(得分:0)
简短版本,如果你不介意可能隐藏" -1"属性:
android version 4.0.1