//定义数组
var numbers = [10,13,16,19,22,25]
//获取16左边在数组中的位置
var iLeft = d3.bisectLeft(numbers.sort(d3.ascending),16);
console.log(iLeft) //2
// 在iLeft位置处,删除0项,出入66
numbers.splice(iLeft,0,66)
//打印新数组
console.log(numbers) [10, 13, 66, 16, 19, 22, 25]
这段代码中,将numbers排序后,在使用bisectLeft()获取了16左边的位置。bisectLeft()所使用的数组必须经过=递增排序。第二个参数用于指定某项的位置,如果此项在数组中存在,则返回此位置的左边。如果此项在数组中不存在,则返回第一个大于此项的值得左边。举个例子 :
//定义数组
var numbers = [10,13,16,19,22,25]
//18在数组中不存在,返回介于16和19之间的位置
var iLeft = d3.bisectLeft(numbers.sort(d3.ascending),18)
console.log(iLeft) //返回值为3
numbers.splice(iLeft,0,77);
//打印新数组
console.log(numbers) //输出[10, 13, 16, 77, 19, 22, 25]
bisect()和bisectRight()是一样的,和bisectLeft()类似,只是获取的是指定项右边的位置。
总结
以上所述是小编给大家介绍的D3.js的基础部分之数组的处理数组的排序和求值(v3版本) ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
您可能感兴趣的文章: