如何向JSON对象中添加新数据?使用push方法无效该如何解决
问题原因
push() 是JavaScript数组的专属内置方法,你当前操作的是普通Object对象,本身没有实现该方法,因此调用后不会生效,甚至会抛出类型错误。
解决方法
以下是几种常用的对象新增键值对的方案:
- 方案1:直接赋值新增单个/多个键值对
适用于新增少量键值对的场景,直接给原对象指定键赋值即可:// 原对象 const userMap = { "8282748274" : "melly", "2764726482" : "john", "8268274827" : "carol" } // 新增单个键值对 userMap["385835638578"] = "alex" // 新增多个就重复赋值即可 userMap["0000000000"] = "NewDataHere" userMap["0000000001"] = "MoreNewData" - 方案2:批量合并新对象到原对象
适用于已有打包好的新数据对象的场景,用Object.assign方法批量合并,无需逐个赋值:const newData = { "385835638578": "alex", "0000000000": "NewDataHere", "0000000001": "MoreNewData" } // 将newData的所有键值对合并到原userMap上,会直接修改原对象 Object.assign(userMap, newData) - 方案3:不修改原对象,生成全新对象
如果需要保留原对象不变,用扩展运算符生成包含所有旧数据和新数据的新对象即可:const updatedUserMap = { ...userMap, "385835638578": "alex", "0000000000": "NewDataHere", "0000000001": "MoreNewData" }
内容的提问来源于stack exchange,提问作者JellyMelly
相关产品推荐
相关产品推荐

