Javascript交换对象元素

时间:2018-06-06 00:14:14

标签: javascript object swap

如何通过索引(oldIndex,newIndex)交换数组中对象中的两个元素?

源数组:

const data = [
  {
    city: 'London',
    sex: 'Female',
    car: 'Honda Accord',
    name: 'Lisa',
  },
  ...
];

我需要使用oldIndex = 0,newIndex = 1

获取一个新的对象数组
const newData = [
  {
    sex: 'Female',
    city: 'London',
    car: 'Honda Accord',
    name: 'Lisa',
  },
  ...
];

优选使用ES6

2 个答案:

答案 0 :(得分:2)

没有必要这样做,因为对象属性的排序在很大程度上取决于浏览器引擎。请参阅此material

  

注意:与以数字有序方式(对于循环或其他迭代器)迭代数组索引相比,对象属性的迭代顺序不能得到保证,并且可能在不同的属性之间变化JS引擎。对于任何需要在环境中保持一致性的事物,不要依赖任何观察到的排序,因为任何观察到的协议都是不可靠的。

您可以参考此solution获取替代解决方案。

答案 1 :(得分:0)

const newData = data.map(item => ({
  sex: item.sex,
  city: item.city,
  car: item.car,
  name: item.name
});

我不知道你为什么要这样做,但这应该有效。