Javascript:如何匹配数组和json?

标签 javascript json foreach

如何找到数组和 json 之间的匹配项?

var fields = [ { public_name: 'hello', code_name: 'world' },
  { public_name: 'particles', code_name: 'pm2.5' },
  { public_name: 'humidity', code_name: 'hum' } ]

var species = [{"code_name":"hum","public_name":"humidity"},
  {"code_name":"pm2.5","public_name":"particles"},
  {"code_name":"world","public_name":"hello"}]


fields.forEach(function(field, index) {       
    if (field.code_name === species.code_name) {
        console.log('match:' + code_name)
    }
});

结果应该是:

match: world
match: pm2.5
match: hum

有什么想法吗?

最佳答案

您可以使用哈希表进行查找。

var fields = [{ public_name: 'hello', code_name: 'world' }, { public_name: 'particles', code_name: 'pm2.5' }, { public_name: 'humidity', code_name: 'hum' }],
    species = [{ "code_name": "hum", "public_name": "humidity" }, { "code_name": "pm2.5", "public_name": "particles" }, { "code_name": "world", "public_name": "hello" }],
    match,
    hash = Object.create(null),
    getHashKey = function (o) { return o.public_name + '|' + o.code_name; };

fields.forEach(function (a) {
    hash[getHashKey(a)] = true;
});

match = fields.filter(function (a) {
    return hash[getHashKey(a)];
});

console.log(match);

关于Javascript:如何匹配数组和json?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38561964/

相关文章:

r - Foreach 组合输出 - 特定向量

javascript - 如何纠正 AngularJS 1.3.5 模块加载错误?

javascript - 如何处理来自 Ajax POST 请求的多个文件响应?

python - 在 json 上上传图像 DJANGO REST FRAMEWORK

json - 从 curl 请求中提取 token 并在另一个 shell 命令中使用

loops - 在 Logramm 中循环字典

php - 如何在 CodeIgniter 中获取关系数据

javascript - 循环遍历数组中的特定索引

javascript - Angular : use a variable into <div>

javascript - 使用 jQuery 防止回发并运行 OnClick