【发布时间】:2020-05-27 20:46:18
【问题描述】:
我正在寻找一种方法来反转对象键的字母顺序。目前,它按字母顺序正确存储,确保正确反转键的最佳方法是什么?我看到数组有很多选项可以反转循环,但没有看到任何对象。是否可以“取消移位”reduce 导出的键?
var alph = Object.keys(feedData)
.sort()
.reduce(function (acc, key) {
acc[key] = feedData[key];
return acc;
}, {});
console.log(alph);
var config = {
"size": [{
"F2-1_largerLegal-input": "",
"F3-1_copy-font": "",
"Frame-Three": "",
"_assetKey": "",
"F3-2_copy-fontSize": "",
"_jvxRtnWeight": "",
"CTA-1_copy-fontSize": "",
"F2-1_copy-font": "",
"EF-1_largerLegal-fontSize": "",
"reportingName": "",
"EF-2_copy-fontSize": "",
"EF-2_copy-font": "",
"F2-3_copy-fontSize": "",
"Frame-One": "",
"assetVarient": "",
"F3-1_largerLegal-fontSize": "",
"EF-1_product-src": "",
"F3-1_frameLegal-input": "",
"F3-1_frameLegal-fontSize": "",
"F3-1_copy-input": "",
"F2-1_copy-input": "",
"EF-3_copy-fontSize": "",
"F2-1_frameLegal-input": "",
"F3-3_copy-fontSize": "",
"F3-2_bg-src": "",
"EF-1_copy-input": "",
"F2-1_frameLegal-fontSize": "",
"F2-2_copy-input": "",
"F2-3_copy-input": "",
"F3-3_copy-input": "",
"EF-1_largerLegal-input": "",
"EF-1_copy-font": "",
"EF-1_frameLegal-fontSize": "",
"F3-3_copy-font": "",
"RO-1_legal-input": "",
"EF-1_frameLegal-input": "",
"F2-3_copy-font": "",
"EF-2_copy-input": "",
"End-Frame": "",
"F3-2_copy-input": "",
"F2-1_copy-fontSize": "",
"F2-1_product-src": "",
"F2-2_copy-font": "",
"rotation": "",
"F3-2_copy-font": "",
"exitUrl": "",
"EF-3_copy-input": "",
"CTA-1_copy-input": "",
"F3-1_copy-fontSize": "",
"EF-1_copy-fontSize": "",
"Frame-Two": "",
"F3-1_bg-src": "",
"EF-3_copy-font": "",
"weighTag": "",
"F3-1_largerLegal-input": "",
"F2-2_copy-fontSize": "",
"dimensions": "",
"F2-1_largerLegal-fontSize": ""
}]
};
【问题讨论】:
-
更大的问题,为什么顺序很重要?您无法保证对象上键的顺序。由于它们以某种方式被散列以便快速查找,因此顺序无关紧要。如果您需要强制/保证一个订单,那么您应该使用每个部分的数组,或者您已排序的键的数组,然后在您需要时以特定顺序对其进行迭代。
-
使用
.sort().reverse()对项目进行降序排序。 -
您是否想打印键反转的对象?
标签: javascript reduce