[英]How can I change elements inside and array
我如何才能将“ 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);
您可以使用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)
您可以使用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(','));
运行循环以获取元素“ 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);
您可以使用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; }
您可以使用indexOf确定数组中元素的索引。 因此,基本上,您可以像这样去:
arr[arr.indexOf('e')] = change0;
如果您有多个具有'e'值的元素,则它将不起作用。 它只会更改第一个,因此您必须将其循环。 或使用地图。
使用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);
var arr = [ "a", "b", "c", "d", "e", "f", "g", "h", "e", "j", "e"]; console.log((((arr.toString()).replace(/e/g,"changed"))).split(','));
如果您打算处理多个字母,最好事先准备编码器/解码器(一个函数或一个数组)。 然后您的工作变得简单:
output = input.map(val => encoder[val] || 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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.