Javascript访问二维数组

我有以下数组


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

如果我寻找“ABC”,我怎样才能得到“123”?我试过了


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

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


波斯汪
浏览 126回答 5
5回答

温温酱

你可以使用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"));

人到中年有点甜

你试图做的事情是不可能使用数组的,你不能使用:array["ABC"]由于数组的索引是基于数字的,因此您需要使用对象才能获得所需内容:var array = {"ABC": ["123", "789"], "DEF": ["456", "323"]};现在您可以根据需要选择它们:array['ABC'][1] // 123

牛魔王的故事

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

守着一只汪

您可以使用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; }

qq_笑_17

您可以使用索引从数组中获取值//first level// array[0] =>["ABC", "123"]// array[1] => ["DEF", "456"]//second level // array[0][0]=> "ABC"// array[0][1]=>  "123"您也可以使用map 或 foreach 之类的方法
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript