下面的代码模拟的场景是:筛选目标数据流,将目标数据内的相同键类型的值存到同一个数组;
现定义一个模拟的数据流:
var newFeature = [
{ "attributes": { "XL": "高中", "CYRYQMRS": 61, "CYRYQMNX": 39 } },
{ "attributes": { "XL": "大专", "CYRYQMRS": 99, "CYRYQMNX": 89 } },
{ "attributes": { "XL": "本科", "CYRYQMRS": 88, "CYRYQMNX": 68 } },
{ "attributes": { "XL": "硕士", "CYRYQMRS": 37, "CYRYQMNX": 12 } },
{ "attributes": { "XL": "博士", "CYRYQMRS": 20, "CYRYQMNX": 10 } }
];
我们需要将目标数据的同一属性的值放进同一个数组:
先创建一个数组,用于放置需要匹配的属性值:
var strArr = []; //用于放置匹配的属性值
for (const key in arr[0].attributes) {
strArr.push(key);
}
然后我们开始我们的循环匹配取值:
var resultArr = []; //用于接收结果
for (let j = 0; j < strArr.length; j++) { //先循环属性
resultArr[j] = []; //生成对应数量的空数组接收值
for (let i = 0; i < arr.length; i++) { //再循环数据
if (arr[i].attributes.hasOwnProperty(strArr[j])) { //获取匹配的数据的值
resultArr[j].push(arr[i].attributes[strArr[j]])
}
}
}
for (let index = 0; index < resultArr.length; index++) {
console.log(resultArr[index]);
}
好了,后台打印的就是我们需要的目标了,可以根据实际情况对上述进行修改调整!