num是总体的数据,b,c是分数据
如果b数组中的对象里面有num中的某一项,则把这一项从num中拿出来放到b中
如果c数组中的对象里面有num中的某几项,则把这几项从num中拿出来放到c中
var num = [{a:1,b:2,c:3},{a:1,b:2,c:3},{a:1,b:2,c:3}];
var b = []
// var b = [{a:1},{a:1},{a:1}];
var c =[]
// var c = [{a:1,b:2},{a:1,b:2},{a:1,b:2}]
var num = [{a: 1, b: 2, c: 3}, {a: 1, b: 2, c: 3}, {a: 1, b: 2, c: 3}];
// 比如b中用到了a属性
var b = []
var result_b = [{a: 1}, {a: 1}, {a: 1}]
//c中用到了b,c属性
var c = []
var result_c = [{b: 2, c: 3}, {b: 2, c: 3}, {b: 2, c: 3}]
function selectField(data, fields) {
return data.map(item => fields.reduce((t, i) => {
if (item[i] != null && item[i] != undefined) {
t[i] = item[i]
}
return t
}, {})).filter(item => Object.keys(item).length != 0)
}
console.log(selectField(num, ['a']))
console.log(selectField(num, ['b', 'c']))
那你现在遇到的问题是什么?
只要你说清楚了问题,那就可以好好解决你的问题
这个比较简单,我给你封装了一个函数,你只需要传入两个参数,一个需要从数据中取出哪些属性组成的数组,一个是数据源,就可以输出一个你想要数据给你,亲测可以,有用的话,麻烦采纳一下哦,有任何问题欢迎询问
var num = [{a:1,b:2,c:3},{a:1,b:2,c:3},{a:1,b:2,c:3}];
function getProp(key, data) {
let result = [];
//key 参数例子,你需要从数据中取出哪几项属性,例如我这里需要取出a和c这两个属性,key就传['a','c'];
data.forEach((dataItem) => {
let pushItem={};
key.forEach((keyItem) => {
if (keyItem in dataItem) {
pushItem[keyItem]=dataItem[keyItem]
}
});
result.push(pushItem);
});
return result
}
//调用举例,如果你想要从中取出只有a和c的值,就这样调用
let result =getProp(['a','c'],num);
console.log('result',result);
javascript也有map,通过虚幻数组,然后把key-value放到map中,最后输出就可以了吧