簡體   English   中英

Javascript 訪問二維數組

[英]Javascript Access Two-Dimensional Array

我有以下數組

var array = [["ABC", "123"], ["DEF", "456"];

如果我尋找“ABC”,我怎樣才能得到“123”?我試過了

array["ABC"][1] //Want Output: 123
array["DEF"][1] //Want Output: 456

您可以使用Array#find

 var array = [["ABC", "123"], ["DEF", "456"]]; let abc = array.find(x=>x[0]==="ABC"); console.log(abc?.[1]); let def = array.find(x=>x[0]==="DEF"); console.log(def?.[1]); let nothing = array.find(x=>x[0]==="NOTHING"); console.log(nothing?.[1]);

但是,使用 object 或Map更適合此目的。 您可以使用 Object.fromEntries 將陣列轉換為Object.fromEntries

 var array = [["ABC", "123"], ["DEF", "456"]]; const obj = Object.fromEntries(array); console.log(obj.ABC); console.log(obj['DEF']);

您也可以將數組傳遞給Map構造函數。 如果您總是想保留插入順序, Map會更好。

 var array = [["ABC", "123"], ["DEF", "456"]]; const map = new Map(array); console.log(map.get("ABC")); console.log(map.get("DEF"));

您可以使用find來定位索引0的項目。 如果找到,則返回索引1處的值。

 const findByFirstValue = (arr, val) => ((res) => res? res[1]: null)(arr.find(v => v[0] === val)) console.log(findByFirstValue([["ABC", "123"], ["DEF", "456"]], 'ABC'))
 .as-console-wrapper { top: 0; max-height: 100%;important; }

您可以使用map

 const array = [["ABC", "123"], ["DEF", "456"]]; const newMap = new Map(); array.map(item=>{ newMap[item[0]] = item; }) console.log(newMap['ABC'][1]);

你試圖做的事情是不可能使用數組的,你不能使用:

array["ABC"]

由於數組的索引是基於數字的,因此您需要使用對象才能獲得所需的內容:

var array = {"ABC": ["123", "789"], "DEF": ["456", "323"]};

現在您可以根據需要對它們進行 select :

array['ABC'][1] // 123

您可以使用索引從數組中獲取值

//first level
// array[0] =>["ABC", "123"]
// array[1] => ["DEF", "456"]

//second level 
// array[0][0]=> "ABC"
// array[0][1]=>  "123"

您也可以使用map或 foreach 等方法

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM