Filter nested array in object array by array of values

前端 未结 2 1966
旧时难觅i
旧时难觅i 2020-12-10 15:45

Considering below object array:

[
    {
        \"guid\": \"j5Dc9Z\",            
        \"courses\": [
            {
                \"id\": 1,
                    


        
2条回答
  •  一整个雨季
    2020-12-10 16:41

    If you're trying to filter the elements whose course IDs contain in the filter.courses, you may use Array#every and Array#includes to do that:

    const data = [{"guid":"j5Dc9Z","courses":[{"id":3,"name":"foo"}]},{"guid":"a5gdfS","courses":[{"id":1,"name":"bar"},{"id":3,"name":"foo"}]},{"guid":"jHab6i","courses":[{"id":7,"name":"foobar"}]}];
    const courses = [1, 6, 3];
    
    const r = data.filter(d => d.courses.every(c => courses.includes(c.id)));
    console.log(r);

提交回复
热议问题