Javascript 从数组中获取三个最低值

Javascript 从数组中获取三个最低值,javascript,json,node.js,Javascript,Json,Node.js,假设我得到一个JSON对象,如下所示: {"27":[2300,2300,2700,2300,2300,2300,2500,2300,2700,2300,2300,2300,2700,2300,2700,2300,2300,2300,2300,1900,2700,2300,2300,2300]} 我想从这个数组中获取三个最低的值,并将其存储为另一个数组。我曾尝试过sort(),但它认为10000比1300低 问题:如何从上述JSON对象中获取三个最低值并将其存储为自己的数组 以下是我尝试对数组

假设我得到一个JSON对象,如下所示:

{"27":[2300,2300,2700,2300,2300,2300,2500,2300,2700,2300,2300,2300,2700,2300,2700,2300,2300,2300,2300,1900,2700,2300,2300,2300]}
我想从这个数组中获取三个最低的值,并将其存储为另一个数组。我曾尝试过
sort()
,但它认为10000比1300低

问题:如何从上述JSON对象中获取三个最低值并将其存储为自己的数组

以下是我尝试对数组进行排序的方式:

-prices[searchLog.PriceSearchId].sort();
试试这个

var价格={
"27": [2300, 2300, 2700, 2300, 2300, 2300, 2500, 2300, 2700, 2300, 2300, 2300, 2700, 2300, 2700, 2300, 2300, 2300, 2300, 1900, 2700, 2300, 2300, 2300]
};
var leastThree=价格[“27”].排序(函数(a,b){
返回a-b;
}).切片(0,3);

控制台日志(至少三个)由于您需要固定数量的最低值,因此不需要使用时间复杂度最多为
O(N*log N)
sort()

以下问题的复杂性是
O(N)

var价格={
"27": [2300, 2300, 2700, 2300, 2300, 2300, 2500, 2300, 2700, 2300, 2300, 2300, 2700, 2300, 2700, 2300, 2300, 2300, 2300, 1900, 2700, 2300, 2300, 2300]
};
var arr=价格['27'];
var lowest=新数组(3).fill(Number.MAX\u SAFE\u INTEGER);
对于(变量i=arr.length;--i>=0;){
var x=arr[i];
//根据需要更新“最低”数组
对于(var j=0;j<最小长度;j++){
如果(x<最低[j]){
最低拼接(j,0,x);
lower.pop();
打破
}
}
}

控制台日志(最低)您的排序不正确,但由于您没有发布代码,我们无法判断问题出在哪里?使用您自己的回调函数进行排序-ES2015+将是
array.sort((a,b)=>a-b).slice(0,3)
请发布您的代码您想要最低的三个唯一值([1900,2300,2500])还是最低的三个值([1900,2300,2300])?