如何将简单值数组合并到对象数组,为每个对象添加指定键值对?
简便实现方案
这里有几种简洁的实现方式,根据你的需求选择:
方式一:不修改原数据(推荐)
利用Array.prototype.map()方法,结合数组索引对应tab的值,同时通过扩展运算符复制原对象属性,避免修改原数据:
let tab = [1,2,3]; let values = [ {key1 : "a", key2 : "b", key3: "c"}, {key1 : "d", key2 : "e", key3: "f"}, {key1 : "g", key2 : "h", key3: "i"} ]; const result = values.map((item, index) => ({ ...item, index: tab[index] }));
这种方式会返回一个全新的数组,原values数组和其中的对象都不会被改动,适合需要保留原数据的场景。如果担心tab和values长度不一致,可以给index设置默认值,比如tab[index] ?? 0。
方式二:直接修改原数据
如果不需要保留原数据,想用更简洁的写法,可以用forEach直接给每个对象添加index属性:
values.forEach((item, index) => { item.index = tab[index]; });
这种方式会直接修改values数组里的原始对象,代码量更少,但会改变原数据结构。
内容的提问来源于stack exchange,提问作者Clément
相关产品推荐
相关产品推荐

