循环匹配对应筛选(2)

下面的代码模拟的场景是:筛选目标数据流,将目标数据内的相同键类型的值存到同一个数组;

现定义一个模拟的数据流:

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]);
}

好了,后台打印的就是我们需要的目标了,可以根据实际情况对上述进行修改调整!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值