我有一个数字数组,我想获得小于特定 x 的第一个数字,然后是大于相同 x 的第一个数字。
var str = 'some random string that is kind of long',
items = [],
position = 10, //varies
itemsBefore,
itemsAfter,
firstItemBeforePosition,
firstItemAfterPosition; //varies
for(var i = 0, length= str.length; i < length; i++){
if(str[i] === ' '){
items.push(i);
}
}
itemsBefore = items.filter(function(item){
return item < position;
});
itemsAfter = items.filter(function(item){
return item > position;
});
firstItemBeforePosition = itemsBefore.length > 0 ? itemsBefore[itemsBefore.length - 1] : 0;
firstItemAfterPosition = itemsAfter.length > 0 ? itemsAfter[0] : str.length;
根据我提供的 JavaScript 代码,items 数组将是[4, 11, 18, 23, 26, 31, 34]
、firstItemBeforePosition
是 4 和firstItemAfterPosition
是 11。
有一个更好的方法吗?
谢谢你。