我写了这个相对简单的代码来找到排序数组中应该插入值的点。替换索引的方法
function findInsertionIndex(array, value){
var i = 0
while(array[i]){
if(value<array[i].value) break
i++
}
return i
}
此代码的伟大工程,但我想用的indexOf来取代它的可读性和简洁的阵列上。我试过这个值在外部范围:
var insertionIndex = array.findIndex(e=> e.value<value) || 0
有人可以指出什么是缺少的?
Runnable接口
function findInsertionIndex(array, value){
var i = 0
while(array[i]){
if(value<array[i].value) break
i++
}
return i
}
// Run the code
a = [{value:1},
{value:5},
{value:6},
{value:7},
{value:9},
{value:23},
{value:84}]
ind = findInsertionIndex(a, 15)
console.log(ind)
////////
// Try with indexOf
////////
a = []
value = 15
// Add a first item
ind = a.findIndex(e=> e.value<value)
ind = ind>0 ? ind : 0
a.splice(ind, 0, 3)
// Add a second item
ind = a.findIndex(e=> e.value<value)
ind = ind>0 ? ind : 0
a.splice(ind, 0, 5)
// Add a third item
ind = a.findIndex(e=> e.value<value)
ind = ind>0 ? ind : 0
a.splice(ind, 0, 4)
console.log(a)
您在开发人员工具控制台中遇到什么错误? –
没有错误,它只是产生错误的输出。 – user2662833
我想你的意思是'e => e.value <值' – 4castle