js求一个循环算法?

我想实现一个小导航功能,有个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){ 
    } //我写的部分代码,比较失败,里面的太乱了,不敢贴出来,吓人。

谁指点我一下嘛!


三国纷争
浏览 765回答 2
2回答

qq_笑_17

var&nbsp;arr&nbsp;=&nbsp;['1001|电脑','1002|个人电脑','99|华硕电脑','100|华硕笔记本'];var&nbsp;target&nbsp;=&nbsp;"99"var&nbsp;result&nbsp;=&nbsp;[];for(var&nbsp;i&nbsp;=&nbsp;0;&nbsp;i<arr.length;&nbsp;i++)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;result.push(arr[i].match(/(\d+)\|/)[1]);&nbsp;&nbsp;&nbsp;&nbsp;if(arr[i].indexOf(target)&nbsp;>&nbsp;-1)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp;&nbsp;&nbsp;} }console.log(result);

德玛西亚99

不需要什么算法var&nbsp;myArray&nbsp;=&nbsp;['1001|电脑','1002|个人电脑','99|华硕电脑','100|华硕笔记本'];var&nbsp;id&nbsp;=&nbsp;100;var&nbsp;result&nbsp;=&nbsp;[];for&nbsp;(var&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;<&nbsp;myArray.length;&nbsp;i++)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;sec&nbsp;=&nbsp;myArray[i].split('|',&nbsp;2);&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;theid&nbsp;=&nbsp;parseInt(sec[0]);&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;thename&nbsp;=&nbsp;sec[1]; &nbsp;&nbsp;&nbsp;&nbsp;result.push(thename);&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(theid&nbsp;==&nbsp;id)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp;&nbsp;&nbsp;} }console.log(result);ES6:let&nbsp;myArray&nbsp;=&nbsp;['1001|电脑','1002|个人电脑','99|华硕电脑','100|华硕笔记本'];let&nbsp;id&nbsp;=&nbsp;99;let&nbsp;last&nbsp;=&nbsp;myArray.findIndex(v=>&nbsp;parseInt(&nbsp;v.split('|',&nbsp;2)[0]&nbsp;)&nbsp;===id&nbsp;) myArray.slice(0,&nbsp;last+1).forEach(v=>&nbsp;alert(&nbsp;v.split('|',&nbsp;2)[0]&nbsp;));
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript