[英]How to replace array element with respect to Index on another array
我有一个数组包含值array1 = [a,b,c,d,e,f,g]
另一个数组包含 array1 的索引和要替换的值array2 = [[2,u],[3,x],[6,z]]
。
现在我想用 array2 替换 array1 的值,请不要让 array2 由[array1_position, value_to_be_replaced]
组成
现在我的新 arra1 应该看起来像这样array1 = [a,b,u,x,e,f,z]
。
我可以用 for 循环来做到这一点,但它又很耗时。 我可以使用什么技巧来快速替换值。 我只是在学习 arrays 并对它有一点了解。
你可以这样做
array2.forEach(arr => {
const [index, replaced] = arr;
array1[index] = replaced;
});
您可以从另一个数组的条目中获取,然后只需map
它:
var array1 = ['a','b','c','d','e','f','g']; var array2 = [[2,'u'],[3,'x'],[6,'z']]; var d=Object.fromEntries(array2); var result = array1.map((val, i)=> d[i] || val); console.log(result);
我认为这样一个冗长的问题没有任何简写方式。 我脑海中浮现的是
array2.forEach((el) => {
array1[el[0]] = el[1];
})
使用按索引排序的array2
,您可以对该数组的索引和 map 来自第一个数组或替换数组的值进行封闭。
var array1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g'], array2 = [[2, 'u'], [3, 'x'], [6, 'z']], result = array1.map( (j => (v, i) => i === array2[j][0]? array2[j++][1]: v) (0) ); console.log(result);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.