我想实现一个小导航功能,有个js数组。我给他变成了这样的了。$arr = ['1001|电脑','1002|个人电脑','99'|华硕电脑,'100'|华硕笔记本];现在要实现这样的,就是我输入。例如:99,就开始找这个数组,输出 1001,1002,99。99后面的都截断。输入 1002,打印出 1001,1002.怎么弄呢?var length = myArray.length;for (var i = 0; i < length; i++) { if(myArray[i].indexOf(id) == -1){
} //我写的部分代码,比较失败,里面的太乱了,不敢贴出来,吓人。谁指点我一下嘛!
2 回答
![?](http://img1.sycdn.imooc.com/545868b60001587202200220-100-100.jpg)
慕丝7291255
TA贡献1859条经验 获得超6个赞
我想实现一个小导航功能,有个js数组。
我给他变成了这样的了。
$arr = ['1001|电脑','1002|个人电脑','99'|华硕电脑,'100'|华硕笔记本];
现在要实现这样的,就是我输入。例如:99,
就开始找这个数组,输出 1001,1002,99。99后面的都截断。
输入 1002,打印出 1001,1002.
怎么弄呢?
var length = myArray.length;for (var i = 0; i < length; i++) { if(myArray[i].indexOf(id) == -1){ } //我写的部分代码,比较失败,里面的太乱了,不敢贴出来,吓人。
谁指点我一下嘛!
![?](http://img1.sycdn.imooc.com/545862370001b03502200220-100-100.jpg)
慕田峪4524236
TA贡献1875条经验 获得超5个赞
不需要什么算法
var myArray = ['1001|电脑','1002|个人电脑','99|华硕电脑','100|华硕笔记本'];var id = 100;var result = [];for (var i = 0; i < myArray.length; i++) { var sec = myArray[i].split('|', 2); var theid = parseInt(sec[0]); var thename = sec[1]; result.push(thename); if (theid == id) { break; } }console.log(result);
ES6:
let myArray = ['1001|电脑','1002|个人电脑','99|华硕电脑','100|华硕笔记本'];let id = 99;let last = myArray.findIndex(v=> parseInt( v.split('|', 2)[0] ) ===id ) myArray.slice(0, last+1).forEach(v=> alert( v.split('|', 2)[0] ));
添加回答
举报
0/150
提交
取消