如何找到数组和 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/