JavaScript在给定属性数组的情况下对对象属性重新排序
我有一个javascript对象,如:JavaScript在给定属性数组的情况下对对象属性重新排序,javascript,arrays,object,Javascript,Arrays,Object,我有一个javascript对象,如: { a: 3, b: 10, c: 2, d: 7, } 我有一个数组,其中包含属性名称的字符串表示形式: [ "c", "b", "a", "d" ] 如何重新排列对象,使属性按与数组中相同的顺序排列,例如: { c: 2, b: 10, a: 3, d: 7, } 尽管ECMAScript-6改进了该功能,但对象属性仍然以无序著称。解决
{
a: 3,
b: 10,
c: 2,
d: 7,
}
我有一个数组,其中包含属性名称的字符串表示形式:
[ "c", "b", "a", "d" ]
如何重新排列对象,使属性按与数组中相同的顺序排列,例如:
{
c: 2,
b: 10,
a: 3,
d: 7,
}
尽管ECMAScript-6改进了该功能,但对象属性仍然以无序著称。解决此问题的一种方法是使用能够记住原始密钥插入顺序的映射
constobj={a:3,b:10,c:2,d:7};
常数arr=[“c”、“b”、“a”、“d”];
const res=新映射(arr.Map(e=>[e,obj[e]]);
for(让[…res]的[键,值]){
console.log(键、值);
}
对象中属性的顺序是任意的。这里的实际目标是什么?您必须构造一个新对象,并按您想要的顺序添加属性。但是,我强烈建议您重新考虑依赖对象属性顺序的编码策略,因为这会使您的代码非常脆弱。您可以对数组进行排序以匹配对象属性顺序吗?为什么不将数组作为有序访问器?这看起来真的像是一个错误。您的实际用例是什么?