从有序数组中找到指定的值,返回对应的索引值
let arr = [1, 3, 5, 7, 8, 12, 14, 17];
- 方法1:
function getIndex(arr, val) {
return arr.indexOf(val);
}
方法2:
function getIndex(arr, val) {
for (var i = 0; i < arr.length; i++) {
if (arr[i] == val) {
return i;
}
}
}
方法3:
function getIndex(arr, val) {
return arr.findIndex(function (value) {
return value == val;
});
}
方法4:
function getIndex(arr, val) {
var start = 0;
var end = arr.length - 1;
while (start <= end) {
var middle = parseInt((start + end) / 2);
if (arr[middle] == val) {
return middle;
} else if (val < arr[middle]) {
end = middle - 1;
} else {
start = middle + 1;
}
}
return -1;
}