Javascript 对对象值进行排序

问题描述

希望你今天过得愉快。我想问你一个问题。这是:

所以我有一个对象,我用 Underscore.js 从中获取值(我会给你一个例子,不使用 underscore.js 来获取值)。

在我获得值后,它会输入大于 0 的数字。我认为它排序大于小。

在我取值之前,我希望值与它们在对象上的完全相同

这是给你的图片

enter image description here

这是代码

tmpReport.forEach(element => {
            const tmpVal = [];
            console.log("element: ",element);
            tmpValList.push(_.values(element));
            console.log('tmpValList: ',tmpValList);
        });

这是不使用 underscore.js 的代码

tmpReport.forEach(element => {
            const tmpVal = [];
            console.log("element: ",element);
            Object.entries(element).forEach(([key,value]) => {
                tmpVal.push(value);
            });
            tmpValList.push(tmpVal);
            console.log('tmpValList: ',tmpValList);
        });

所以任何帮助将不胜感激。谢谢!

解决方法

在 JavaScript 中,不保证对象条目的顺序。 如果您想在数组中的特定索引处放置特定条目,则必须手动执行此操作。

例如:

tmpVal[0] = element['Cell damage by placing'];
...
tmpVal[4] = element['time'];
tmpVal[5] = element['toplan'];

只有知道对象键才能实现这一点。据我所知,现在有一种通用的方法来保持初始顺序,因为没有开始的顺序。

在这种情况下,您可以做的最好的事情是使用字典顺序并相应地对键进行排序。