在array / json jQuery中查找匹配键

时间:2018-09-27 14:24:43

标签: javascript jquery

使用$.getJSON从具有以下内容的外部.json文件获取数据。

{
	data:[
		{
			"1apps":"1",
			"abc" "xyz"
		},
		{
			"apps":"2",
			"abc" "xyz"
		},
		{
			"2apps":"3",
			"abc" "xyz"
		}
	]		 
}

我想找到匹配应用程序的关键数据。在这种情况下,将输出1apps,apps,2apps。

2 个答案:

答案 0 :(得分:2)

您可以使用filter,然后对obj进行迭代,然后使用include函数确定字符串是否包含指定字符串的字符

var obj = {
  data: [{
      "1apps": "1",
      "abc": "xyz"
    },
    {
      "apps": "2",
      "abc": "xyz"
    },
    {
      "2apps": "3",
      "abc": "xyz"
    }
  ]
};


var list = obj["data"];
var matchedKeys = [];
list.filter(function(k, v) {
  for (var i in k) {
    if (i.includes('apps')) {
      matchedKeys.push(i);
      return k;
    }
  }
});

console.log(list)
   console.log(matchedKeys);

答案 1 :(得分:0)

您可以简单地使用reduce和filter来获取包含apps

的键。

const obj = {
  data:[
    {
      "1apps":"1",
      "abc" :"xyz"
    },
    {
      "apps":"2",
      "abc" :"xyz"
    },
    {
      "2apps":"3",
      "abc" :"xyz"
    }
  ]
}

const res = obj.data.reduce((a,b) => a.concat(...Object.keys(b).filter(x => /apps/.test(x))), []);
console.log(res);