2016-08-19 3 views
2

Gibt es einen besseren Weg, Werte zu finden?Wie vereinfacht man den Code?

let arrData = [[1, 0], [74, 0], [75, 1], [76, 1], [79, 1], [80, 0], [81, 0], [82, 0], [83, 1], [84, 0], [85, 0], [86, 0]]; 
let isn = 75; 

function searchCount(arr, isn) { 
    for(var i = 0; i < arr.length; i++){ 
     if(arr[i][0] == isn){ 
      return arr[i][1]; 
     } 
    } 
} 

console.log(searchCount(arrData, isn)); 

Antwort

1

Sie auch, wie unten in ein Wörterbuch umwandeln könnte:

var dataMap = 
    arrData.reduce(function(p, c) { p[c[0]] = c[1]; return p; }, {}); 

Sie DataMap verwenden könnte, indem man das Element suchen als Index zu DataMap suchen:

dataMap[75] 
3

Sie könnten Array#find verwenden.

Die find() Methode gibt einen Wert in dem Feld, wenn ein Element in dem Array die Prüffunktion vorgesehen erfüllt. Andernfalls wird undefined zurückgegeben.

let arrData = [[1, 0], [74, 0], [75, 1], [76, 1], [79, 1], [80, 0], [81, 0], [82, 0], [83, 1], [84, 0], [85, 0], [86, 0]]; 
 
let isn = 75; 
 

 
function searchCount(arr, isn) { 
 
    var el = arr.find(a => a[0] === isn); 
 
    return el && el[1]; 
 
} 
 

 
console.log(searchCount(arrData, isn));

Oder Map

Der einfache Schlüssel/Wert-Karte Map Objekt verwenden ist. Jeder Wert (sowohl Objekte als auch Grundwerte) kann entweder als Schlüssel oder als Wert verwendet werden.

in Kombination mit Map#get

der RETURNS get() Verfahren ein angegebenes Element aus einem Map Objekt.

let arrData = [[1, 0], [74, 0], [75, 1], [76, 1], [79, 1], [80, 0], [81, 0], [82, 0], [83, 1], [84, 0], [85, 0], [86, 0]]; 
 
let isn = 75; 
 

 
function searchCount(arr, isn) { 
 
    return (new Map(arr)).get(isn); 
 
} 
 

 
console.log(searchCount(arrData, isn));

Verwandte Themen