javascript - 对象数组的操作
问题描述
如何操作特定对象?,这是我的例子。
"lead_tags": [{
"tag_id": 8616,
"user_id": 622,
"tag_name": null,
"tag_description": null,
"user_tag_id": 2147483647,
"user_tags": null
}, {
"tag_id": 8656,
"user_id": 622,
"tag_name": null,
"tag_description": null,
"user_tag_id": 2147483647,
"user_tags": null
}, {
"tag_id": 8742,
"user_id": 622,
"tag_name": null,
"tag_description": null,
"user_tag_id": 1249,
"user_tags": {
"user_tag_id": 1249,
"user_id": 622,
"tag_name": "Testtesttest"
} }, {
"tag_id": 8767,
"user_id": 622,
"tag_name": null,
"tag_description": null,
"user_tag_id": 1262,
"user_tags": {
"user_tag_id": 1262,
"user_id": 622,
"tag_name": "t"
} }]
首先我需要过滤所有等于null
我使用过滤器不返回 user_tags 的值:null
var lead_tags = [{
"tag_id": 8616,
"user_id": 622,
"tag_name": null,
"tag_description": null,
"user_tag_id": 2147483647,
"user_tags": null
}, {
"tag_id": 8656,
"user_id": 622,
"tag_name": null,
"tag_description": null,
"user_tag_id": 2147483647,
"user_tags": null
}, {
"user_id": 622,
"tag_name": null,
"tag_description": null,
"user_tag_id": 1249,
"user_tags": {
"user_tag_id": 1249,
"user_id": 622,
"tag_name": "Testtesttest",
"tag_id": 8742
} }, {
"user_id": 622,
"tag_name": null,
"tag_description": null,
"user_tag_id": 1262,
"user_tags": {
"user_tag_id": 1262,
"user_id": 622,
"tag_name": "t",
"tag_id": 8767
} }];
var filter = _.filter(lead_tags, (data, index) => {
return data.user_tags != null;
});
console.log(filter);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min.js"></script>
现在我需要在开始时获取 tag_id 并返回数据如下所示
"lead_tags": [{
"user_id": 622,
"tag_name": null,
"tag_description": null,
"user_tag_id": 1249,
"user_tags": {
"user_tag_id": 1249,
"user_id": 622,
"tag_name": "Testtesttest",
"tag_id": 8742
}
}, {
"user_id": 622,
"tag_name": null,
"tag_description": null,
"user_tag_id": 1262,
"user_tags": {
"user_tag_id": 1262,
"user_id": 622,
"tag_name": "t",
"tag_id": 8767
}
}]
我希望你能帮助我处理数据。
解决方案
希望这个作品
var lead_tags = [{
"tag_id": 8616,
"user_id": 622,
"tag_name": null,
"tag_description": null,
"user_tag_id": 2147483647,
"user_tags": null
}, {
"tag_id": 8656,
"user_id": 622,
"tag_name": null,
"tag_description": null,
"user_tag_id": 2147483647,
"user_tags": null
}, {
"user_id": 622,
"tag_name": null,
"tag_description": null,
"user_tag_id": 1249,
"user_tags": {
"user_tag_id": 1249,
"user_id": 622,
"tag_name": "Testtesttest",
"tag_id": 8742
} }, {
"user_id": 622,
"tag_name": null,
"tag_description": null,
"user_tag_id": 1262,
"user_tags": {
"user_tag_id": 1262,
"user_id": 622,
"tag_name": "t",
"tag_id": 8767
} }];
var filter = lead_tags.filter(data => data.user_tags != null);
let result = [];
filter.forEach(el => {
result = [
...result,
{
tag_id: el['user_tags']['tag_id'],
user_id: el['user_id'],
...el,
}
]
});
console.log(result);
const result2 = filter.reduce((acc, curr) => {
return acc.concat({
tag_id: curr['user_tags']['tag_id'],
user_id: curr['user_id'],
...curr,
})}, []);
console.log(result2)
推荐阅读
- scala - 如何按三级 Seq 数据分组
- karate - 空手道司机 iframe 元素识别挑战
- python - 无法在 Python 3 中打印列表(范围(4**4**4))
- android - xamarin android错误APT0000:资源''与配置''的重复值
- javascript - indexOf 问题。这段代码是如何工作的?
- git - Git:终端上的“[master $=]”是什么意思?
- android - 如何使用 Fragment 中的 ViewModelProvider 将 ViewModel 附加到活动?
- java - 如何在弹性搜索中创建索引和类型 - 我已经尝试了到目前为止提供的答案,但它们不起作用
- angular - 在 Angular 中使用 ngx-translate 翻译 datatable.net
- css - 如何在移动视图中居中徽标?