# 求数组非零最小值 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