简体   繁体   中英

How to check if array of objects contains any value from array

Hi so i have an array of integers which i have been trying to check against my array of objects. I only want to check that ANY of the values in the array are within the objArray, it does not need to be ALL.

const objArray = [{id: 1},{id: 2},{id: 3}]

const array = '1,2'

This is what i tried but i think i am probably way off the logic, i end up getting false every time i run the below code.

stringToArray(array).includes(objArray.some(o => o.id))

Essentially my overall goal to is to validate that any return true and then continue with code otherwise throw an error.

function stringToArray() {
    return valueString.match( /(?=\S)[^,]+?(?=\s*(,|$))/g )
}

Thanks for you help? I keep getting false regardless and it may be to do with my function wrapping around the array,. My array was originally a string which i converted using regex to an array.

Thank you in advance!

You're very close. Just flip your statement around.

objArray.some(o => array.includes(o.id))

 const objArray = [{id: 1},{id: 2},{id: 3}] const array = [1, 2]; console.log(objArray.some(o => array.includes(o.id)));

You were on the right track with your logic.

Although this is not the most efficient answer, it will work for ur case.

I believe you want to match all of the values, if I understand you correctly.

Therefore, one way to check if each id in the object is included in the array is to loop over the object.

If you want to much at least one, just change it to some instaed of every

 const objArray = [{id: 1},{id: 2},{id: 3}] const array = [1, 2,3] const condition = objArray.every(objElement => { // here you get acess to id here. so we check it againts the array return array.includes(objElement.id) }) console.log(condition)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM