5 回答

TA貢獻1752條經驗 獲得超4個贊
你可以使用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]);
但是,使用對象或Map
更適合此目的。您可以使用 將數組轉換為對象Object.fromEntries
。
var array = [["ABC", "123"], ["DEF", "456"]];
const obj = Object.fromEntries(array);
console.log(obj.ABC);
console.log(obj['DEF']);
您也可以將數組傳遞給Map構造函數。Map如果您總是想保留插入順序,s 會更好。
var array = [["ABC", "123"], ["DEF", "456"]];
const map = new Map(array);
console.log(map.get("ABC"));
console.log(map.get("DEF"));

TA貢獻1895條經驗 獲得超7個贊
你試圖做的事情是不可能使用數組的,你不能使用:
array["ABC"]
由于數組的索引是基于數字的,因此您需要使用對象才能獲得所需內容:
var array = {"ABC": ["123", "789"], "DEF": ["456", "323"]};
現在您可以根據需要選擇它們:
array['ABC'][1] // 123

TA貢獻1830條經驗 獲得超3個贊
您可以使用map
const array = [["ABC", "123"], ["DEF", "456"]];
const newMap = new Map();
array.map(item=>{
newMap[item[0]] = item;
})
console.log(newMap['ABC'][1]);

TA貢獻1872條經驗 獲得超4個贊
您可以使用find來定位值為 index 的項目0。如果找到,返回 index 處的值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; }

TA貢獻1818條經驗 獲得超7個贊
您可以使用索引從數組中獲取值
//first level
// array[0] =>["ABC", "123"]
// array[1] => ["DEF", "456"]
//second level
// array[0][0]=> "ABC"
// array[0][1]=> "123"
您也可以使用map 或 foreach 之類的方法
添加回答
舉報