如何更改对象数组中的键名?
var arrayObj = [{key1:'value1', key2:'value2'},{key1:'value1', key2:'value2'}];
Run Code Online (Sandbox Code Playgroud)
我怎样才能改变每个key1
来stroke
让我得到:
var arrayObj = [{stroke:'value1', key2:'value2'},{stroke:'value1', key2:'value2'}];
Run Code Online (Sandbox Code Playgroud)
Pau*_*aul 35
var i;
for(i = 0; i < arrayObj.length; i++){
arrayObj[i].stroke = arrayObj[i]['key1'];
delete arrayObj[i].key1;
}
Run Code Online (Sandbox Code Playgroud)
Guf*_*ffa 17
您无法更改属性名称,必须使用新名称添加值并删除旧属性:
for (var i = 0; i < arrayObj.length; i++) {
arrayObj[i].stroke = arrayObj[i].key1;
delete arrayObj[i].key1;
}
Run Code Online (Sandbox Code Playgroud)
Mar*_*cus 13
在最近的JavaScript(和TypeScript)中,使用destructure with rest pattern,spread和array map来替换对象数组中的一个关键字符串.
const arrayOfObj = [{key1:'value1', key2:'value2'},{key1:'value1', key2:'value2'}];
const newArrayOfObj = arrayOfObj.map(({ key1: stroke, ...rest }) => ({ stroke, ...rest }));
// [{stroke:'value1', key2:'value2'},{stroke:'value1', key2:'value2'}]
Run Code Online (Sandbox Code Playgroud)
小智 11
ES6 只需要一行代码
尝试以下代码:
arrayObj.map(({ stroke, key2 }) => ({ yourNewKey: stroke, yourNewKey2: key2 }));
Run Code Online (Sandbox Code Playgroud)
ES6 map()方法:
var arrayObj = [{key1:'value1', key2:'value2'},{key1:'value1', key2:'value2'}];
arrayObj = arrayObj.map(item => {
return {
value: item.key1,
key2: item.key2
};
});
Run Code Online (Sandbox Code Playgroud)
const company = [{ id:"1", name:"somename"},{ id:"1", name:"somename"}]
company.map(({ id, name }) => ({ companyId: id, companyName: name }));
// output
//[{ companyId:"1", companyName:"somename"},{ companyId:"1", //companyName:"somename"}]
Run Code Online (Sandbox Code Playgroud)