[英]If object set has an object property create an array
I have a response value which is dynamic which i need to store in redux state,我有一个动态的响应值,我需要将其存储在 redux state 中,
Response consist of array of object and and name ex:响应由 object 和名称 ex 组成的数组:
{data:[
{name:"abc",age:"10",id:"10"}
{name:"abc",age:"15",id:"20"}
{name:"def",age:"15",id:"20"}
]
name: "abc"
}
So if the name is same I need to create array with the name.因此,如果名称相同,我需要使用该名称创建数组。
Expected:预期的:
abc:[
{name:"abc",age:"10",id:"10"}
{name:"abc",age:"15",id:"20"}
]
something I tried我试过的东西
data.map(function(o) {
if(data.name ==o.name)
return name[o];
});
If you're wanting a new object with a key
of the name property
you could try something like this如果你想要一个新的 object 带有name property
的key
,你可以尝试这样的事情
const response = { data: [{ name: "abc", age: "10", id: "10" }, { name: "abc", age: "15", id: "20" }, { name: "def", age: "15", id: "20" }, ], name: "abc" } const createSet = (someData) => { let key = someData.name let data = someData.data.filter(e => e.name === key) return { [key]: data } } console.log(createSet(response))
You can extract duplicated using reduce
and filter
:您可以使用reduce
和filter
提取重复项:
var data = { data:[ {name:"abc",age:"10",id:"10"}, {name:"abc",age:"15",id:"20"}, {name:"def",age:"15",id:"20"} ], name: "abc" } const lookup = data.data.reduce((a, e) => { a[e.name] = ++a[e.name] || 0; return a; }, {}); console.log(data.data.filter(e => lookup[e.name]));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.