根据给定的键更改javascript对象中元素的顺序
我试图通过给定的键更改javascript中对象的顺序。这是我的代码,但它说移位不是一个函数。它是否不适用于对象?请给出一个解决方案根据给定的键更改javascript对象中元素的顺序,javascript,arrays,angular,object,ionic-framework,Javascript,Arrays,Angular,Object,Ionic Framework,我试图通过给定的键更改javascript中对象的顺序。这是我的代码,但它说移位不是一个函数。它是否不适用于对象?请给出一个解决方案 periods = { "Su": 6, "Mo": 10, "Ma": 7, "Ra": 18, "Ju": 16, "Sa": 19, "Me": 17, "Ke": 7, "Ve": 20, }; rotateOrder(key
periods = {
"Su": 6,
"Mo": 10,
"Ma": 7,
"Ra": 18,
"Ju": 16,
"Sa": 19,
"Me": 17,
"Ke": 7,
"Ve": 20,
};
rotateOrder(key:any, entities:any) {
let result = entities;
for(var k in entities) {
if(entities.hasOwnProperty(k) && k != key){
result.push(result.shift());
}
else {
return result;
}
}
}
console.log(this.rotateOrder("Ve", this.periods));
我们可以使用object.entries和sort函数重新排列/更改数组: 代码: 设周期={ 苏:6,, 莫:10,, 马:7,, Ra:18, 朱:16,, Sa:19, 我:17, 柯:7,, Ve:20, }; 让KeySorted=Object.entriesperiods.sortfunction a,b{ 返回a[1]-b[1] } console.logkeysorded 可以使用Object.entries将对象转换为数组,然后使用.slice和.concat,最后使用Object.fromEntries返回对象 在下面的示例中,我还使用Object.keys和.indexOf来查找key的索引,但还有其他解决方案 设周期={ 苏:6,, 莫:10,, 马:7,, Ra:18, 朱:16,, Sa:19, 我:17, 柯:7,, Ve:20, }; 函数旋转或旋转,obj{ 让idx=Object.keysobj.indexOfkey//查找键的索引 让arr=Object.entriesobj//将对象转换为数组 让newObj=Object.fromEntries//这将重新创建对象 arr.sliceidx//获取数组的结束部分,从键开始 .concatarr.slice0,idx//连接开头 返回newObj }
控制台。LogRoToRead“JU”,PosiSHIFT不与Objor一起工作。还有其他方法来转换对象吗?转换为数组,例如Obj.EngIsI.如果顺序很重要,那么考虑一个或一个数组,而不是一个对象。