Javascript 提取内部的数组和对象数组
我试图提取这个[“label1”、“label2”、“label3”、“label4”] 但是上面的代码打印了[[“label1”、“label2”]、[“label1”、“label3”]、[“label2”、“label4”]]Javascript 提取内部的数组和对象数组,javascript,Javascript,我试图提取这个[“label1”、“label2”、“label3”、“label4”] 但是上面的代码打印了[[“label1”、“label2”]、[“label1”、“label3”]、[“label2”、“label4”]] 有人能帮我吗?首先,你可以映射你的objs数组,只获取标签数组,然后用Set删除重复项 const objs=[ {标签:[“label1”,“label2”]}, {标签:[“label1”、“label3”]}, {标签:[“label2”,“label4”]
有人能帮我吗?首先,你可以映射你的
objs
数组,只获取标签
数组,然后用Set
删除重复项
const objs=[
{标签:[“label1”,“label2”]},
{标签:[“label1”、“label3”]},
{标签:[“label2”,“label4”]},
];
常量r=[…新集合([].concat(…objs.map(({labels}=>labels)))];
控制台日志(r)
首先,您可以映射您的objs
数组以仅获取标签
数组,然后使用Set
删除重复项
const objs=[
{标签:[“label1”,“label2”]},
{标签:[“label1”、“label3”]},
{标签:[“label2”,“label4”]},
];
常量r=[…新集合([].concat(…objs.map(({labels}=>labels)))];
控制台日志(r)代码>请使用下划线尝试此操作
labels = this.get('objs').map(function(obj) {
return obj.labels.map(function(label) {
return label;
});
});
console.log(labels);
尝试使用下划线
labels = this.get('objs').map(function(obj) {
return obj.labels.map(function(label) {
return label;
});
});
console.log(labels);
您可以使用排列元素和Set
labels = _.union(this.get('objs').map(function(obj) {
return obj.labels.map(function(label) {
return label;
})
}))
console.log(labels);
或.filter()
和包括()
您可以使用排列元素和Set
labels = _.union(this.get('objs').map(function(obj) {
return obj.labels.map(function(label) {
return label;
})
}))
console.log(labels);
或.filter()
和包括()
你能在es5中提供这个吗?@LokeshCherukuri是的,当然。我认为在参数声明中进行解构可能会导致一些兼容性问题。您能在es5中提供吗?@LokeshCherukuri是的,当然。我认为,在参数声明中进行分解可能会导致一些兼容性问题。
var res = [];
objs.forEach(({labels}) =>
res = [...res, ...labels.filter(prop => !res.includes(prop))]);