繁体   English   中英

如何相对于另一个数组上的索引替换数组元素

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM