# 求数组非零最小值 index
/**
* @description 求数组非零最小值 index
* @param {array} arr 数组
* @returns {number} index 索引
*/
function getIndex(arr) {
let index = -1;
const minVal = arr.reduce((cur, pre) => {
// 如果cur、pre有值小于0,则返回两者较大值
// 否则返回两者较小值
// 这一步骤是为了取得非负非零的最小值minVal
return (cur <= 0 || pre <= 0) ? Math.max(cur, pre) : cur > pre ? pre : cur;
}, -1);
// 找到minVal的index,并返回index
index = arr.findIndex(item => item == minVal && minVal > 0)
return index;
}
console.log(getIndex([10, 21, 0, -7, 35, 7, 9, 23, 18]))
// 5