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条经验 获得超3个赞
您可以使用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 之类的方法
添加回答
举报