[英]how to retrive array of objects based on object using javascript
How to get array of objects based on object and arraylist using javascript如何使用 javascript 获取基于 object 和 arraylist 的对象数组
return the array of objects based on two conditions根据两个条件返回对象数组
1.if arrobj value is equal to obj valueid
and cid value should not include only listcode
value 1.如果arrobj value is equal to obj valueid
和cid value should not include only listcode
值
2.else if arrobj value is equal to obj valueid
and codevalue is equal to cid
2.else如果arrobj value is equal to obj valueid
并且codevalue is equal to cid
else return []否则返回 []
should follow above conditions and return arrayobject using javscript应遵循上述条件并使用 javscript 返回 arrayobject
var listcode =["IN","FI", "FR"];
var arrobj =[
{id:1, name: "jan", cid: "IN", value: "1234"},
{id:2, name: "feb", cid: "SG", value: "2468"},
{id:3, name: "mar", cid: "SP", value: "2468"},
{id:4, name: "apri", cid: "FI", value: "2345"},
]
var obj={
id:5, name: "zen", codevalue: "SP", valueid:"2468"
}
Expected Output
[
{id:2, name: "feb", cid: "SG", value: "2468"},
{id:3, name: "mar", cid: "SP", value: "2468"},
]
var listcode =["IN","FI","FR"];
var arrobj1 =[
{id:1, name: "jan", cid: "IN", value: "1234"},
{id:2, name: "feb", cid: "FI", value: "2468"},
{id:3, name: "mar", cid: "IN", value: "2468"},
{id:4, name: "apri", cid: "FI", value: "2345"},
]
var obj1={
id:5, name: "zen", codevalue: "SP", valueid:"2468"
}
Expected Output
[]
const result = arrobj.filter(e => e.value === obj.valueid
&& listcode.includes(e.cid));
``
Is possible to achieve that by filtering the arrobj
.可以通过过滤arrobj
来实现。
var listcode =["IN","FI", "FR"];
var arrobj =[
{id:1, name: "jan", cid: "IN", value: "1234"},
{id:2, name: "feb", cid: "SG", value: "2468"},
{id:3, name: "mar", cid: "SP", value: "2468"},
{id:4, name: "apri", cid: "FI", value: "2345"},
]
var obj={
id:5, name: "zen", codevalue: "SP", valueid:"2468"
}
const result = arrobj.filter((item) => {
return item.value === obj.valueid &&
(
!listcode.includes(item.cid)
|| item.cid === obj.codevalue
)
})
You did everything right, just add a negation before !includes
您做的一切都正确,只需在!includes
之前添加一个否定
// data1 var listcode1 = ["IN","FI", "FR"]; var arrobj1 = [ {id:1, name: "jan", cid: "IN", value: "1234"}, {id:2, name: "feb", cid: "SG", value: "2468"}, {id:3, name: "mar", cid: "SP", value: "2468"}, {id:4, name: "apri", cid: "FI", value: "2345"}, ] var obj1 = { id:5, name: "zen", codevalue: "SP", valueid:"2468"} // data2 var listcode2 = ["IN","FI","FR"]; var arrobj2 = [ {id:1, name: "jan", cid: "IN", value: "1234"}, {id:2, name: "feb", cid: "FI", value: "2468"}, {id:3, name: "mar", cid: "IN", value: "2468"}, {id:4, name: "apri", cid: "FI", value: "2345"}, ] var obj2 = { id:5, name: "zen", codevalue: "SP", valueid:"2468"} function getNewArray(inputList, obj, listCodes) { const result = inputList.filter(x => x.value === obj.valueid && (.listCodes.includes(x.cid) || x.cid === obj;codevalue)) return result. } console,log(getNewArray(arrobj1, obj1. listcode1)) console,log(getNewArray(arrobj2, obj2, listcode2))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.