首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在多维数组中查找匹配项inJavascript

在多维数组中查找匹配项inJavascript
EN

Stack Overflow用户
提问于 2017-05-12 04:57:33
回答 5查看 61关注 0票数 3

我正在尝试匹配Javascript中的整个数组。我有一个userInput数组,我需要在一个多维数组中找到一个匹配的数组并输出匹配结果。

代码语言:javascript
运行
复制
var t1 = [0,0,0];
var t2 = [1,0,0];
var t3 = [0,0,1];
var userInput = [0,0,0];
var configs = [t1, t2, t3];

我正在尝试找到一种方法,将userInput与其他数组之一进行匹配,并输出匹配的数组。使用underscore.js,我可以在没有循环的情况下一次找到一个匹配项,但这会返回一个布尔值。

代码语言:javascript
运行
复制
var result = _.isEqual(userInput,t1) returns true

我需要在configs数组中找到匹配的数组。我可以嵌套循环来遍历配置,但我不知道如何将其与userInput匹配。

EN

回答 5

Stack Overflow用户

发布于 2017-05-12 05:06:14

您可以使用Array#findIndex在数组中查找匹配配置的索引。使用Array#every查找相等的配置。

代码语言:javascript
运行
复制
var t1 = [0,0,0];
var t2 = [1,0,0];
var t3 = [0,0,1];
var userInput = [0,0,1]; // this will fit t3 (index 2)
var configs = [t1, t2, t3];

var result = configs.findIndex(function(arr) {
  return arr.every(function(value, i) {
    return value === userInput[i];
  });
});

console.log(result);

票数 1
EN

Stack Overflow用户

发布于 2017-05-12 05:06:52

给定输入,您可以使用Array.prototype.find()Array.prototype.toString()Array.prototype.join()

代码语言:javascript
运行
复制
var t1 = [0,0,0];
var t2 = [1,0,0];
var t3 = [0,0,1];
var userInput = [0,0,0];
var configs = [t1, t2, t3];

var result = configs.find(arr => arr.join() === userInput.join());

console.log(result);

票数 1
EN

Stack Overflow用户

发布于 2017-05-12 05:02:41

您可以组合使用someevery

代码语言:javascript
运行
复制
var t1 = [0,0,0];
var t2 = [1,0,0];
var t3 = [0,0,1];
var userInput = [0,0,0];
var configs = [t1, t2, t3];
var inputPresent = configs.some(a => userInput.every((u,i) => a[i] == u));
console.log(inputPresent);

如果您想知道现有输入的索引,可以只包含一个三元组

代码语言:javascript
运行
复制
var t1 = [0,0,0];
var t2 = [1,0,0];
var t3 = [0,0,1];
var userInput = [0,0,0];
var configs = [t1, t2, t3];
var inputIndex = -1;
configs.some((a,n) => userInput.every((u,i) => a[i] == u)?(inputIndex=n,true):false);
console.log(inputIndex);

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43925396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档