鍍金池/ 問答/人工智能  HTML/ js求一個循環(huán)算法?

js求一個循環(huán)算法?

我想實現(xiàn)一個小導(dǎo)航功能,有個js數(shù)組。

我給他變成了這樣的了。

$arr = ['1001|電腦','1002|個人電腦','99'|華碩電腦,'100'|華碩筆記本];

現(xiàn)在要實現(xiàn)這樣的,就是我輸入。例如:99,

就開始找這個數(shù)組,輸出 1001,1002,99。99后面的都截斷。

輸入 1002,打印出 1001,1002.

怎么弄呢?

var length = myArray.length;
for (var i = 0; i < length; i++) {
    if(myArray[i].indexOf(id) == -1){ 
    } //我寫的部分代碼,比較失敗,里面的太亂了,不敢貼出來,嚇人。
    
    

誰指點我一下嘛!

回答
編輯回答
神經(jīng)質(zhì)

不需要什么算法

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] ));
2017年7月24日 01:25
編輯回答
維她命
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年7月31日 16:52
編輯回答
維他命
function findArr(target,myArray){
  let index = myArray.findIndex(item=>parseInt(item) == target);
  return index > -1 ? myArray.slice(0,index+1) : [];
}; 
let targetArr = findArr(99, ['1001|電腦','1002|個人電腦','99|華碩電腦','100|華碩筆記本']);
targetArr.forEach(item => console.log(parseInt(item)));
2017年3月18日 08:24
編輯回答
憶往昔
var arr = ['1001|電腦','1002|個人電腦','99|華碩電腦','100|華碩筆記本'];
var target = "99"
var result = [];
for(var i = 0; i<arr.length; i++) {
    if(arr[i].indexOf(target) > -1) {
        result.push(arr[i].match(/(\d+)\|/)[1]);
        break;
    }
    result.push(arr[i].match(/(\d+)\|/)[1]);
}
alert(result);

這樣改了一下,感覺改的有點渣。

2017年1月19日 05:31