Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.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 如何获取数组中5个最小值的索引?_Javascript_Arrays - Fatal编程技术网

Javascript 如何获取数组中5个最小值的索引?

Javascript 如何获取数组中5个最小值的索引?,javascript,arrays,Javascript,Arrays,我试图得到数组中5个最小值的索引 我尝试了下面的代码,但是它给出了错误:Math.min.apply(…).indexOf不是函数。我只是不确定我可以用什么作为替代 var smallest = []; for (var i = 0, length = distances.length; i < length; i++) { var min = Math.min.apply(null,distances).indexOf(); if (smallest.length <

我试图得到数组中5个最小值的索引

我尝试了下面的代码,但是它给出了错误:Math.min.apply(…).indexOf不是函数。我只是不确定我可以用什么作为替代

var smallest = [];
for (var i = 0, length = distances.length; i < length; i++) {
    var min = Math.min.apply(null,distances).indexOf();
    if (smallest.length <= 5) {
        smallest.push(min);
    }
    console.log(smallest);
}
var=[];
对于(变量i=0,长度=距离.length;i如果(minimen.length可以为每个元素添加索引,则按升序对数据进行排序,然后拼接前5个值:

const data=[1,4,8,3,3,5,9,0,4,2]
常量索引=data.map((e,i)=>[e,i])
.sort()
.拼接(0,5)
.map(([,el])=>el)

console.log(index)
您可以为每个元素添加索引,按升序对数据排序,然后拼接前5个值:

const data=[1,4,8,3,3,5,9,0,4,2]
常量索引=data.map((e,i)=>[e,i])
.sort()
.拼接(0,5)
.map(([,el])=>el)

log(index)
您可以获取键,用值对它们进行排序,然后取前五名

var indices = [...distances.keys()]
        .sort((a, b) => distances[a] - distances[b])
        .slice(0, 5);

您可以获取键,按值对它们进行排序,然后取前五名

var indices = [...distances.keys()]
        .sort((a, b) => distances[a] - distances[b])
        .slice(0, 5);

您可以使用
Object.entries()
获取
[索引,值]
对,现在您可以按值排序以获取顺序

const distance=[1,4,8,3,3,5,9,0,4,2];
常量索引=对象条目(距离)
.sort(([,a],,b])=>a-b)
.map(([index])=>+索引)
.切片(0,5)

console.log(index);
您可以使用
Object.entries()
获得
[index,value]
对,现在您可以按值排序以获得顺序

const distance=[1,4,8,3,3,5,9,0,4,2];
常量索引=对象条目(距离)
.sort(([,a],,b])=>a-b)
.map(([index])=>+索引)
.切片(0,5)

console.log(index);
这个表达式没有意义;
Math.min()
返回单个数值。
Object.entries(distance).sort([i,a],[j,b])=>a-b.map([index])=>index.slice(0,5)
如果相同(小)怎么办值在数组中存在两次?您想要哪个索引?这个表达式没有意义;
Math.min()
返回一个数值。
Object.entries(distance)。sort(([i,a],[j,b])=>a-b)。map([index])=>index)。slice(0,5)
如果相同(小)怎么办值在数组中存在两次?您想要哪个索引?这将如何返回索引?啊,是的,我现在修复它@charlietfl@T.J.Crowder哈哈,是的,在这里写答案的时候,我总是因为没有用严格的方式写而成为牺牲品。
data.slice().map(…)
是没有意义的。
map
已经创建了一个新数组,您不再需要
slice()
了。:)这将如何返回索引?啊,是的,我现在就解决这个问题@charlietfl@T.J.Crowder哈哈,是的,在这里写答案的时候,我总是因为没有用严格的方式写而成为牺牲品。
data.slice().map(…)
是没有意义的。
map
已经创建了一个新数组,你不再需要
slice()
keys
返回一个迭代器。@charlietfl看一看
keys
返回一个迭代器。@charlietfl看一看,这里不需要声明
i
j
,你只需要写
[,a]
[,b]
:)@Kobe thx,不确定。并且不想对这些未使用的参数使用
\u
\u
。是的,解构有时会变得奇怪:p这里不需要声明
i
j
,您只需编写
[,a]/code>和
[,b]
:)@Kobe-thx,不确定。不想对这些未使用的参数使用
\uu
\u
。是的,解构有时会变得很奇怪:P