更改javascript对象的位置



我正在处理一个javascript对象。我想改变对象的顺序。

这是我当前的对象(我试图移动对象的最后两个键和值对(,

const obj = {
one: {
name: "one"
},
two: {
name: "two"
},
five: {
name: "five"
},
three: {
name: "three"
},
four: {
name: "four"
}
};

这就是我正在努力实现的目标,

const obj = {
one: {
name: "one"
},
two: {
name: "two"
},
three: {
name: "three"
},
four: {
name: "four"
}
five: {
name: "five"
},
};

,这就是我目前所做的

const numbers = ["one", "two", "three"];
const sortObject = (object) => {
let objOne = {};
let objTwo = {};
let index = 0;
Object.entries(object).forEach(([key, value]) => {
if (numbers.includes(key)) {
objOne[key] = value;
} else {
objTwo[key] = value;
}
});
for (const obj in objOne) {
if (index === 2) {
Object.assign(objOne, objTwo);
}
index++;
}
Object.entries(objOne).forEach((element) => {
console.log(element);
});
};
sortObject(obj);

是否可以将对象的最后两个键值对移动到对象的第三个位置?

代码笔

希望它会有所帮助。

const obj = {
one: {
name: "one"
},
two: {
name: "two"
},
five: {
name: "five"
},
three: {
name: "three"
},
four: {
name: "four"
}
};
let newObj = Object.fromEntries(Object.entries(obj).sort(sorter));
function sorter(a,b){
//a[1] and b[1] is the value of the obj, a[0] is the key.
let item = a[1].name;
let nextItem = b[1].name;
const sorterDict = {"one":0,"two":1,"three":2,"four":3,"five":4};
if(sorterDict[item] > sorterDict[nextItem])
return 1;
else if(sorterDict[item] < sorterDict[nextItem])
return -1;
return 0;
}
console.log(newObj)

最新更新