如何将“arr”中的"e"
元素替换为change0
?
arr
数组将是用户的输入,我需要更改它,无法预测哪个元素将是"e"
。
var arr = [ "a", "b", "c", "d", "e", "f", "g", "h", "e", "j", "e"];
var change0 = 2
var change1 = 1
document.write(arr);
答案 0 :(得分:2)
您可以使用map()
方法,这将返回新更新的数组并保存原始数据。
var arr = [ "a", "b", "c", "d", "e", "f", "g", "h", "e", "j", "e"];
var change0 = 2;
var result = arr.map(e => e == 'e' ? change0 : e);
console.log(result)

答案 1 :(得分:2)
您可以使用join
和split
方法执行此操作。
var replace="change0";
var arr = [ "a", "b", "c", "d", "e", "f", "g", "h", "e", "j", "e"];
console.log(arr.join().split('e').join(replace).split(','));

答案 2 :(得分:1)
运行循环以获取元素的索引" e"然后重复,直到剩下更多元素:
var arr = [ "a", "b", "c", "d", "e", "f", "g", "h", "e", "j", "e"];
while (arr.indexOf("e") > 0){
var index = arr.indexOf("e");
arr[index] = "change0";
}
document.write(arr);

答案 3 :(得分:1)
您可以使用Array#indexOf
并搜索所有元素,然后使用给定值进行更改。
var array = [ "a", "b", "c", "d", "e", "f", "g", "h", "e", "j", "e"],
search = "e",
change = 2,
p = array.indexOf(search);
while (p !== -1) {
array[p] = change;
p = array.indexOf(search, p + 1);
}
console.log(array);

.as-console-wrapper { max-height: 100% !important; top: 0; }

答案 4 :(得分:1)
您可以使用indexOf来确定数组中元素的索引。所以基本上,你可以这样:
arr[arr.indexOf('e')] = change0;
如果您有多个元素的值为' e'它将无效。它只会改变第一个,所以你必须通过一个循环。或者使用地图。
答案 5 :(得分:1)
使用forEach
:
var arr = [ "a", "b", "c", "d", "e", "f", "g", "h", "e", "j", "e"];
var change = "changed";
arr.forEach(function(v, i) {
if(v === "e")
arr[i] = change;
});
console.log(arr);
答案 6 :(得分:1)
var arr = [ "a", "b", "c", "d", "e", "f", "g", "h", "e", "j", "e"];
console.log((((arr.toString()).replace(/e/g,"changed"))).split(','));

答案 7 :(得分:0)
如果您打算处理多个字母,最好事先准备好编码器/解码器(功能或数组)。然后你的工作变得如此简单:
output = input.map(val => encoder[val] || val);
|| val
部分用于未由编码器处理的值。
在此示例中,我们使用split("")
将字符串转换为数组,使用join("")
执行相反的操作。
PrepareCodec:
var Latin = "abcdefghijklmnoprstuvyzABCDEFGHIJKLMNOPRSTUVYZ";
var Cyrillic = "абцдефгхийклмнопрстувызАБЦДЕФГХИЙКЛМНОПРСТУВЫЗ";
var encoder = {}, decoder = {};
for (let i in Latin) encoder[Latin[i]] = Cyrillic[i];
for (let i in Cyrillic) decoder[Cyrillic[i]] = Latin[i];
EncryptionTest:
var src = prompt("Enter text to encrypt:", "Hello, world!");
var enc = src.split("").map(val => encoder[val] || val).join("");
DecryptionTest:
enc = prompt("Enter text to decrypt:", enc);
var dec = enc.split("").map(val => decoder[val] || val).join("");
FinalResult:
prompt("Decrypted text:", dec);