javascript - 与多层数组匹配字符串

标签 javascript arrays string

如何将变量 car 与变量数组匹配?我需要将每个第一个项目(别克、梅赛德斯、雪佛兰)与我的字符串相匹配。我这种情况应该记录别克和雪佛兰:

var car = "Buick, Chevrolet";
var array = [
  ["Buick", "2012", "USA", "1201"],
  ["Mercedes", "2005", "Germany", "12354"],
  ["Chevrolet", "1974", "USA", "9401"]
];


if (car = array) {
  console.log("Buick and Chevrolet matches.");  
};

但字符串可能不同 - 有时可能匹配项目 0,有时可能匹配 30 等等。

最佳答案

在现代 Javascript 中,您可以使用 Set.filter 来实现此目的:

var car = "Buick, Chevrolet";
var array = [
  ["Buick", "2012", "USA", "1201"],
  ["Mercedes", "2005", "Germany", "12354"],
  ["Chevrolet", "1974", "USA", "9401"]
];

var searchCars = new Set(car.match(/\w+/g));
var found = array.filter(([name]) => searchCars.has(name));

console.log(found);

关于javascript - 与多层数组匹配字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39912885/

相关文章:

javascript - angularjs:带有路由提供者的 Controller

javascript - js Promise 上下文中的finally 何时被调用?

javascript - JavaScript 的 forEach 循环如何决定跳过或迭代数组中的 "undefined"和 "null"元素?

javascript - 如何使用本地存储中的详细信息成功登录 [JavaScript]

javascript - 使用正则表达式防止双下划线(_)

python - 什么时候获取 numpy 数组的子矩阵返回 View 而不是复制?

c++ - 如何将 argv[] 的内容复制到 c 风格的字符串中?

c++ - 字符串末尾的额外零字符出现在 C++ 中用于范围循环

c - 删除C中字符串中出现的每个\n

javascript - 为什么 Javascript 不显示结果