如何在Javascript对象中移动元素位置

如何在Javascript对象中移动元素位置,javascript,json,Javascript,Json,我想将JavaScript对象下面的元素key3和key4移动到第一个位置 var JObject= { "Key1":Val1, "Key2":Val2, "Key3": Val3, "key4":val4 } 我期待类似的输出 var JObject= { "Key3": Val3, "key4":val4, "Key1":Val1,

我想将JavaScript对象下面的元素key3和key4移动到第一个位置

 var JObject=
{
"Key1":Val1,
"Key2":Val2,
"Key3": Val3,
"key4":val4
}
我期待类似的输出

var JObject=
{
 "Key3": Val3,
  "key4":val4,
  "Key1":Val1,
  "Key2":Val2,
}
我尝试将json对象添加到数组中,并取消移位,因为它是动态的

var data=[];
data.push(JObject);
var stringToFilter = 'Key3';  
data.unshift(data.splice(data.findIndex(item => item.id === stringToFilter), 1)[0])

我不知道如何获取'key3'的索引并将其取消移动到第一个

要对其进行排序,一个选项是将数据保存为一个
数组

var JObject= [];
JObject[0] = Val3;
JObject[1] = Val4;
JObject[2] = Val1;
JObject[3] = Val2;
或者,如果您需要“转换”它,最简单的方法是使用缓冲区变量并重新排列数组。-甚至可以使用
缓冲区
继续您的程序。(仅限静态、不可压缩使用!)


您可以使用
object.entries()
将对象转换为键值对数组,交换该对,然后使用
object.fromEntries()

const JObject={
键1:“Val1”,
键2:“Val2”,
键3:“Val3”,
键4:“Val4”,
}
const temp=对象条目(JObject)
常量交换=(arr,i,j)=>{
[arr[i],arr[j]=[arr[j],arr[i]]
}
交换(临时,0,2)
交换(临时,1,3)
const newJObject=Object.fromEntries(临时)

console.log(newJObject)
JS对象中的键没有明确排序。您必须使用地图或数组作为数据结构。如果您使用数组,这里有一个函数可用于将元素从一个位置移动到另一个位置:-谢谢您的建议。如何将交换的临时数组转换回具有相同结构的JObject,但该项是first@AMDI您可以将临时文件复制到其他文件array@hgb123-我想把temp转换回json对象,改变元素的顺序
var JObject= [];
    JObject[0] = Val1;
    JObject[1] = Val2;
    JObject[2] = Val3;
    JObject[3] = Val4;

var buffer;
buffer = JObject;

JObject[0] = buffer[3];
JObject[1] = buffer[4];
JObject[2] = buffer[1];
JObject[3] = buffer[2];