[英]Get uniq values from an array of object created using lodash
我是新手,在这里我试图从新创建的 object 数组中获取唯一元素。
const data = _.uniq(
orderData?.Sessions.map(session => ({
label: `${session.Activity.Name}`,
value: `${session.Activity.Name}`
}))
);
我已经尝试过了,但它仍然返回了 object 的数组,它使用两个键中的任何一个键具有唯一元素。
object 不应重复。
谁能帮我这个?
应该是_.uniqBy()
,参考uniqBy
const data = _.uniqBy(
orderData ? .Sessions.map(session => ({
label: `${session.Activity.Name}`,
value: `${session.Activity.Name}`
})), 'label' or 'value'
);
它应该是 label 或值
例子
document.querySelector("body").onload = function() { // By 'label' console.log("By label"); console.log( _.uniqBy( [ {'label': 'name', 'value': 'Test Name 1'}, {'label': 'name', 'value': 'Test Name 2'}, {'label': 'company', 'value': 'Test Company 1'} ], 'label' ) ) // By 'vlaue' console.log("By value"); console.log( _.uniqBy( [ {'label': 'name', 'value': 'SO User'}, {'label': 'name', 'value': 'SO User'}, {'label': 'company', 'value': 'Test Company 1'} ], 'value' ) ) }
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.10/lodash.min.js"></script>
你必须使用_.uniqBy(data, 'id');//id that is key you have to remove duplicate value from array
您的场景将像这样使用
如果被label移除,则
const data = _.uniqBy(
orderData ? .Sessions.map(session => ({
label: `${session.Activity.Name}`,
value: `${session.Activity.Name}`
})),'label'
);
如果被一个值移除,那么
const data = _.uniqBy(
orderData ? .Sessions.map(session => ({
label: `${session.Activity.Name}`,
value: `${session.Activity.Name}`
})),'value'
);
如果您获得更多详细信息,请链接
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.