題目描述:
先給數(shù)組排序辕宏,然后找到指定的值在數(shù)組的位置,最后返回位置對應(yīng)的索引。
舉例:where([1,2,3,4], 1.5) 應(yīng)該返回 1录淡。因?yàn)?.5插入到數(shù)組[1,2,3,4]后變成[1,1.5,2,3,4]删性,而1.5對應(yīng)的索引值就是1亏娜。
同理,where([20,3,5], 19) 應(yīng)該返回 2蹬挺。因?yàn)閿?shù)組會(huì)先排序?yàn)?[3,5,20]维贺,19插入到數(shù)組[3,5,20]后變成[3,5,19,20],而19對應(yīng)的索引值就是2巴帮。
題目分析:
根據(jù)題意溯泣,需要先對數(shù)組中的元素進(jìn)行升序排列,由于Array.sort()函數(shù)默認(rèn)排序順序是根據(jù)字符串Unicode碼點(diǎn)晰韵,我們需要先指定一個(gè)排序函數(shù)讓它按某種順序進(jìn)行排列发乔,然后用indexOf()方法返回在數(shù)組中指定的值的第一個(gè)索引。
代碼實(shí)現(xiàn):
function where(arr, num) {
function compare(a, b){
return a -b;
}
arr.push(num);
arr.sort(compare);
return arr.indexOf(num);
}
where([40, 60], 50);