如何使用push方法向数组添加元素并解决数组输出格式不符问题
解决方案
问题根因
你当前的写法会将otherArray和{title: 'Hello'}作为两个独立的元素推入myList数组,最终数组长度为2,对应你现在得到的包含两个独立对象的输出结果。你期望的是将两个对象的属性合并为一个对象后,作为数组的唯一元素存在。
适配代码
如果otherArray是包含你示例中单个对象的数组,可通过对象合并后再推入数组实现需求:
写法1(扩展运算符,推荐)
const myList = []; myList.push({...otherArray[0], title: 'Hello'});
写法2(兼容低运行环境)
如果环境不支持ES6扩展运算符,可使用Object.assign实现合并:
const myList = []; myList.push(Object.assign({}, otherArray[0], {title: 'Hello'}));
如果otherArray本身就是单个对象而非数组,直接去掉上述代码中的[0]即可。
额外场景参考
如果你后续需要将otherArray的所有元素展开追加到myList,同时单独追加新对象(不需要合并属性),可以用扩展运算符展开数组参数:
const myList = []; myList.push(...otherArray, {title: 'Hello'});
该写法得到的是多元素数组,和你本次的期望输出不符,仅作扩展参考。
内容的提问来源于stack exchange,提问作者Jerry Seigle
相关产品推荐
相关产品推荐

