如何在JavaScript多维数组中根据输入值查找对应位置参数?
根据输入标识在二维数组中查找对应位置值的实现
嘿,我来帮你搞定这个问题!你手里有一个存储标识和对应位置的二维数组,想要根据用户输入的标识拿到匹配的位置值并赋值给变量对吧?这里有几种实用的JavaScript实现方式:
方法1:传统for循环(兼容性拉满)
这种方法适配所有JavaScript运行环境,哪怕是比较旧的浏览器也能完美支持:
var array = [["A1", "left:81px"], ["A2", "left:145px"]]; var userInput = "A1"; var targetPosition = ""; // 初始化目标位置变量 // 遍历数组每一项 for (let i = 0; i < array.length; i++) { // 检查当前子数组的第一个元素是否和用户输入匹配 if (array[i][0] === userInput) { targetPosition = array[i][1]; // 赋值对应的位置值 break; // 找到匹配项后立即停止遍历,提升效率 } } console.log(targetPosition); // 输出结果:"left:81px"
方法2:forEach遍历(代码更简洁)
如果你偏好更清爽的写法,forEach方法能让代码可读性更强:
var array = [["A1", "left:81px"], ["A2", "left:145px"]]; var userInput = "A1"; var targetPosition = ""; array.forEach(item => { if (item[0] === userInput) { targetPosition = item[1]; } }); console.log(targetPosition); // 输出结果:"left:81px"
方法3:find方法(ES6+最直观)
如果你的环境支持ES6及以上语法,find方法是最直观的选择,它会直接返回第一个匹配的子数组:
var array = [["A1", "left:81px"], ["A2", "left:145px"]]; var userInput = "A1"; // 查找第一个匹配的子数组 var matchedItem = array.find(item => item[0] === userInput); // 处理找不到匹配项的情况,避免报错 var targetPosition = matchedItem ? matchedItem[1] : "默认位置值"; console.log(targetPosition); // 输出结果:"left:81px"
小提示
如果用户输入的标识可能不存在,一定要记得处理这种边界情况哦!比如上面方法3里的三元表达式,就给找不到的情况设置了默认值,避免出现undefined的问题。
内容的提问来源于stack exchange,提问作者Prerona Kundu
相关产品推荐
相关产品推荐

