简体   繁体   中英

Push to an array if id value is not found

I've a little array problem I'm going round and round in loops with. I have a number of check boxes, each checkbox has a specific object. On checking a checkbox I want to iterate over the array and if the id of the checkbox (object) does not match any other items in the array, push to the array.

I have the following, which pushes the checkbox object for every item that doesn't match it's id. So I end up with multiple objects of the same ID.

mapMarkers.map(marker => {
    if(markerID !== marker[0].id) {
        mapMarkers.push(markerObject)
    };
}); 

Any help to get my thinking on this straight would be appreciated.

For context here's the project its from. Lines 281 https://codepen.io/sharperwebdev/pen/PQvMqR?editors=0011

The Array#filter method would be more appropriate for this. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter

const filteredMarkers = mapMarkers.filter(marker => markerID !== marker.id);

Then use filteredMarkers ( mapMarkers isn't mutated, which is a better practice).

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