试图从数字列表中提取数组值,但值返回无效的数组长度

时间:2018-12-30 04:23:07

标签: javascript arrays concatenation

我正在尝试从特定数组中提取数组项号。

例如,如果输入值的数字介于2.59和2.79之间,例如2.65

使用此功能的输出

   const gpaToLevel = [].concat(...
        [1.99, 2.19, 2.39, 2.59, 2.79, 2.99, 3.19, 3.39, 3.59, 3.79, 4.00].map((ending, j, endValue) =>
            Array(ending - (endValue[j-1] || -1)).fill(j)
        )
    );

应为4,因为2.65小于2.79,而2.79的值为[4]。

谢谢

1 个答案:

答案 0 :(得分:2)

我认为您正在寻找的是findIndex()。它需要一个回调,并将返回回调返回true的第一项的索引。

因此,如果您对数组进行了排序,则可以使用:

arr = [1.99, 2.19, 2.39, 2.59, 2.79, 2.99, 3.19, 3.39, 3.59, 3.79, 4.00]

// 4
console.log(arr.findIndex(item => item > 2.65))
// 5 
console.log(arr.findIndex(item => item > 2.85))
// 0
console.log(arr.findIndex(item => item > 1.85))

// -1 -- no items greater than 4.0
console.log(arr.findIndex(item => item > 4.5))