Javascript Node.JS使用lodash将子对象添加到对象
我有一个像这样的对象:Javascript Node.JS使用lodash将子对象添加到对象,javascript,arrays,node.js,object,lodash,Javascript,Arrays,Node.js,Object,Lodash,我有一个像这样的对象: [{ "id": 3298, "kanji": "籲", "part": "一 | 亅 个 ハ 冂 口 目 冊 竹 貝 頁 龠 廾", "createdAt": "2018-04-16T02:27:33.993Z", "updatedAt": "2018-04-16T02:27:33.993Z" }, { "id": 5801, "kanji": "龥", "part": "一 | 亅 个
[{
"id": 3298,
"kanji": "籲",
"part": "一 | 亅 个 ハ 冂 口 目 冊 竹 貝 頁 龠 廾",
"createdAt": "2018-04-16T02:27:33.993Z",
"updatedAt": "2018-04-16T02:27:33.993Z"
}, {
"id": 5801,
"kanji": "龥",
"part": "一 | 亅 个 ハ 冂 口 廾 目 冊 貝 頁 龠",
"createdAt": "2018-04-16T02:27:34.102Z",
"updatedAt": "2018-04-16T02:27:34.102Z"
}]
我想将其与一个数组相结合,该数组保存唯一的汉字
和部分
,并删除重复部分。我希望它返回如下结果
{
"kanji": ["籲", "龥"],
"part": ["一", "|", "亅", "个", "ハ", "冂", "口", "目", "冊", "竹", "貝", "頁", "龠", "廾"]
}
如何使用
lodash
来执行此操作?您可以使用map
和uniq
来获取对象中的所有唯一值
const data=[{“id”:3298,“汉字”:籲", "第“:”部分一 | 亅 个 ハ 冂 口 目 冊 竹 貝 頁 龠 廾", "createdAt:“2018-04-16T02:27:33.993Z”,“updatedAt:“2018-04-16T02:27:33.993Z”},{“id”:5801,“汉字”:龥", "第“:”部分一 | 亅 个 ハ 冂 口 廾 目 冊 貝 頁 龠", "createdAt:“2018-04-16T02:27:34.102Z”,“updatedAt:“2018-04-16T02:27:34.102Z”}];
常数结果={
汉字:(数据).map('kanji').uniq().value(),
部分:uz(数据).map('part').split(''.uniq().value()
};
控制台日志(结果)代码>
您可以使用map
和uniq
来获取对象中的所有唯一值
const data=[{“id”:3298,“汉字”:籲", "第“:”部分一 | 亅 个 ハ 冂 口 目 冊 竹 貝 頁 龠 廾", "createdAt:“2018-04-16T02:27:33.993Z”,“updatedAt:“2018-04-16T02:27:33.993Z”},{“id”:5801,“汉字”:龥", "第“:”部分一 | 亅 个 ハ 冂 口 廾 目 冊 貝 頁 龠", "createdAt:“2018-04-16T02:27:34.102Z”,“updatedAt:“2018-04-16T02:27:34.102Z”}];
常数结果={
汉字:(数据).map('kanji').uniq().value(),
部分:uz(数据).map('part').split(''.uniq().value()
};
控制台日志(结果)代码>
您可以使用来获取kanjis和零件的扁平阵列。然后使用uniq仅保留唯一元素:
const数据=[
{
“id”:3298,
“汉字”:籲",
“部分”:一 | 亅 个 ハ 冂 口 目 冊 竹 貝 頁 龠 廾",
“createdAt”:“2018-04-16T02:27:33.993Z”,
“更新日期”:“2018-04-16T02:27:33.993Z”
},
{
“id”:5801,
“汉字”:龥",
“部分”:一 | 亅 个 ハ 冂 口 廾 目 冊 貝 頁 龠",
“createdAt”:“2018-04-16T02:27:34.102Z”,
“更新日期”:“2018-04-16T02:27:34.102Z”
}
];
常数结果={
汉字:u.uniq(u.flatMap(数据,'kanji')),
部分:q.uniq(q.flatMap(数据,p=>p.part.split(“”)))
};
console.log(结果);
您可以使用来获取kanjis和零件的展平数组。然后使用uniq仅保留唯一元素:
const数据=[
{
“id”:3298,
“汉字”:籲",
“部分”:一 | 亅 个 ハ 冂 口 目 冊 竹 貝 頁 龠 廾",
“createdAt”:“2018-04-16T02:27:33.993Z”,
“更新日期”:“2018-04-16T02:27:33.993Z”
},
{
“id”:5801,
“汉字”:龥",
“部分”:一 | 亅 个 ハ 冂 口 廾 目 冊 貝 頁 龠",
“createdAt”:“2018-04-16T02:27:34.102Z”,
“更新日期”:“2018-04-16T02:27:34.102Z”
}
];
常数结果={
汉字:u.uniq(u.flatMap(数据,'kanji')),
部分:q.uniq(q.flatMap(数据,p=>p.part.split(“”)))
};
console.log(结果);
您还可以使用和,您可以实现所需的结果
演示
const-arr=[
{
“id”:3298,
“汉字”:籲",
“部分”:一 | 亅 个 ハ 冂 口 目 冊 竹 貝 頁 龠 廾",
“createdAt”:“2018-04-16T02:27:33.993Z”,
“更新日期”:“2018-04-16T02:27:33.993Z”
},
{
“id”:5801,
“汉字”:龥",
“部分”:一 | 亅 个 ハ 冂 口 廾 目 冊 貝 頁 龠",
“createdAt”:“2018-04-16T02:27:34.102Z”,
“更新日期”:“2018-04-16T02:27:34.102Z”
}
]
让结果=arr.reduce((o,v)=>{
o、 汉字推送(v.kanji);
o、 部分=[…o.部分,…v.部分分割('');
返回o;
},{汉字:[],部分:[]});
console.log(result);
您还可以使用和,您可以实现所需的结果
演示
const-arr=[
{
“id”:3298,
“汉字”:籲",
“部分”:一 | 亅 个 ハ 冂 口 目 冊 竹 貝 頁 龠 廾",
“createdAt”:“2018-04-16T02:27:33.993Z”,
“更新日期”:“2018-04-16T02:27:33.993Z”
},
{
“id”:5801,
“汉字”:龥",
“部分”:一 | 亅 个 ハ 冂 口 廾 目 冊 貝 頁 龠",
“createdAt”:“2018-04-16T02:27:34.102Z”,
“更新日期”:“2018-04-16T02:27:34.102Z”
}
]
让结果=arr.reduce((o,v)=>{
o、 汉字推送(v.kanji);
o、 部分=[…o.部分,…v.部分分割('');
返回o;
},{汉字:[],部分:[]});
console.log(结果);
为什么必须将预期对象放在数组中?@Eddie我刚刚编辑了预期对象,谢谢你的关注:)为什么必须将预期对象放在数组中?@Eddie我刚刚编辑了预期对象,谢谢你的关注:)