如何使用JavaScript在数组中每个JSON对象开头添加键值对
给JSON数组每个对象开头添加
id键值对的解决方案 嘿,这个问题我太熟啦!你之前用map的时候把id加在末尾,是因为你先展开了原对象再添加id。要把id放在对象最前面,只需要调整一下属性的定义顺序就行~
具体实现代码
// 你的原始数据 const originalData = [ { "Forename": "Scott", "Surname": "Jones", "Age": 18 }, { "Forename": "Tina", "Surname": "Turner", "Age": 20 }, { "Forename": "Joe", "Surname": "Bloggs", "Age": 20 } ]; // 给每个对象开头添加id的正确写法 const dataWithId = originalData.map((item, index) => ({ id: index + 1, // 先定义id,放在最前面 ...item // 再展开原对象的其他属性 })); console.log(dataWithId);
为什么这个方法能生效?
在ES6及以后的JavaScript规范里,对象字面量中属性的定义顺序会被保留。你之前的写法是{...item, id: index+1},先把原对象的所有属性展开,再添加id,所以id自然就排在了最后。反过来先写id,再展开原对象,id就会成为对象的第一个属性。
小提示
如果你的运行环境是非常老的ES5及以下版本,对象属性的顺序是不被保证的,但现在主流的浏览器、Node.js环境都已经支持ES6+的属性顺序规则,所以这个方案完全可靠。
内容的提问来源于stack exchange,提问作者eversosarky
相关产品推荐
相关产品推荐

