Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/43.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何根据特定属性的值对对象数组进行排序_Javascript_Node.js - Fatal编程技术网

Javascript 如何根据特定属性的值对对象数组进行排序

Javascript 如何根据特定属性的值对对象数组进行排序,javascript,node.js,Javascript,Node.js,如下面的代码所示,我有一个数组,我将对象推入一个循环中。我想做的是,根据延迟的值对它进行排序 财产。我使用了以下代码: delayOfFeatures.sort((a, b) => a.delay - b.delay); 但是数组没有改变 代码: delayOfFeatures.push({ progSpace: progSpace, feature: feature, delay: delay }); 下面是一个示例,您可以根据delay属性按升序或降序对功能数组进行排序 类特征{

如下面的代码所示,我有一个数组,我将对象推入一个循环中。我想做的是,根据延迟的值对它进行排序 财产。我使用了以下代码:

delayOfFeatures.sort((a, b) => a.delay - b.delay);
但是数组没有改变

代码

delayOfFeatures.push({ progSpace: progSpace, feature: feature, delay: delay });

下面是一个示例,您可以根据
delay
属性按升序或降序对
功能
数组进行排序

类特征{
构造函数(名称、延迟){
这个。_name=name;
这是延迟=延迟;
}
获取名称(){
返回此。\u名称;
}
获取延迟(){
返回此文件。\u延迟;
}
}
常量特征=[
新功能(“功能A”,1000),
新功能(“功能C',500),
新功能(“功能B',50),
新功能(“功能D',1),
新功能(“功能E”,750),
];
//延迟上升
排序((a,b)=>a.delay-b.delay);
console.log(特性);
//延迟下降
排序((a,b)=>b.delay-a.delay);

console.log(特性)
您正在排序
delayOfFeat
并且您正在推送值的数组是
delayOfFeat
延迟是一个数字吗?或者是一个带有数字和一些文本的字符串?这里有一个类似的问题:sort返回排序后的数组,因此var result=delayOfFeatures.sort((a,b)=>a.delay-b.delay);结果将具有排序版本,不需要循环。@user15741-
。sort()
会返回数组,但它也会对原始数组进行就地排序,以便返回的数组是原始数组。没有理由分配任务。您需要向我们展示更多代码,因为
delayOfFeatures.sort((a,b)=>a.delay-b.delay)没有问题。这将通过数值
delay
属性对数组进行排序。所以,我不确定你的问题是什么。您显示的代码并不表示有任何问题。您的排序与
delayOfFeatures.sort((a,b)=>a.delay-b.delay)有什么不同OP已经在他们的问题中了?我试图向OP说明应该做什么才能得到OP想要的结果。这就是为什么我用简单但清晰的类列表填充和数组,每个类中都有一个字符串和一个数字。然后,用这两种简单的方法对它们进行排序。