为了账号安全,请及时绑定邮箱和手机立即绑定

js求一个循环算法?

js求一个循环算法?

三国纷争 2018-09-03 07:28:40
我想实现一个小导航功能,有个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 回答

?
qq_笑_17

TA贡献1818条经验 获得超7个赞

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


查看完整回答
反对 回复 2018-09-03
?
德玛西亚99

TA贡献1770条经验 获得超3个赞

不需要什么算法

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] ));


查看完整回答
反对 回复 2018-09-03
  • 2 回答
  • 0 关注
  • 764 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信