我的array=[5,4,3,1]
位于下方,我想.push(2)
,然后是.sort()
我的array
,并找出我在数组中的新号码位置刚推了我知道新号码位于array[1]
的答案。
var array = [5,4,3,1];
array.push(2); //My new number
var sortedArray = arr.sort();
// sortedArray [1,2,3,4,5]
// The new number's position went to array[1]
有没有办法找出我的新号码去哪个位置?
答案 0 :(得分:1)
您可以使用索引对数组进行排序,并使用存储索引来分类排序数组。
var array = [5, 4, 3, 1],
index = array.push(2) - 1,
indices = array
.map((_, i) => i)
.sort((a, b) => array[a] - array[b]);
console.log(index); // old index
console.log(indices.indexOf(index)); // new index
console.log(indices);

答案 1 :(得分:0)
您可以使用findIndex
。
const array = [5, 4, 3, 1];
const n = 32;
array.push(n);
const sortedArray = array.sort();
const index = sortedArray.findIndex(el => el === n);
console.log(sortedArray, index)

请注意,如果您使用数字并且希望它们在排序后按升序排序,则可以改进排序:
const sortedArray = array.sort((a, b) => b < a);
答案 2 :(得分:0)
您可以使用reduce
功能。
2
的索引数组。
var array = [5,4,3,1];
array.push(2);
var indexes = array.sort().reduce((a, n, i) => {
if (n === 2) {
a.push(i);
}
return a;
}, []);
console.log(JSON.stringify(indexes));
&#13;
参见,返回一个只有一个索引的数组。