基于带索引的数组更改对象属性的顺序(JavaScript)



我一直在努力处理这段代码。

我有一个类似于的对象

var obj = {
Name: 'Test',
Id: 1,
Address: 'addr'
}

一个类似于的数组

var arr = [1,0,2]; 

我希望用第二个中给出的索引对对象的属性进行排序。

结果应该是这样的:

var obj = {
Id: 1,
Name: 'Test',
Address: 'addr'
}

我真的很期待你的回复。

您无法可靠地设置对象中属性的顺序。您需要重新思考解决此问题的方法,以便由数组而不是对象来处理顺序。然后,该数组可以用于编写按特定顺序访问属性的代码,即使对象实际上没有按该顺序访问属性。

例如:

const columns = ['Id', 'Name', 'Address'];
const data = [{
Name: 'Test',
Id: 1,
Address: 'addr'
}, {
Address: 'addr2',
Id: 1,
Name: 'Test2',
}];
let csv = columns.join(',') + 'n';
data.forEach(obj => {
const row = columns.map(propertyName => {
return obj[propertyName];
});
csv = csv + row.join(',') + 'n'
})
console.log(csv);

最新更新