JS通过对象内的嵌套数组过滤对象数组
JS filter array of objects by a nested array within object
我有一组与此类似的对象
let data = [
{
name: 'jake fisher',
age: 24,
team_ids: [1234, 5678, 9125],
},
{
name: 'kelly smith',
age: 46,
team_ids: [3331, 8884, 1234, 8808, 7621],
},
{
name: 'austin williams',
age: 66,
team_ids: [9125, 4445],
},
{
name: 'alex rodriguez',
age: 27,
team_ids: [],
},
];
我正在尝试将此对象数组过滤为仅包含 team_ids 个 1234 的对象
所以在这个例子中,仅有的两个拥有匹配的团队 ID 的是“Jake Fisher”和“Kelly Smith”。
我尝试了一些其他解决方案,其中一些让我相当接近,但似乎有一些严重的缺陷。我认为真正让我失望的是它是一个嵌套数组(我正在学习,但我没有 运行 经常参与其中!)任何帮助将不胜感激!
let data = [{
name: 'jake fisher',
age: 24,
team_ids: [1234, 5678, 9125],
},
{
name: 'kelly smith',
age: 46,
team_ids: [3331, 8884, 1234, 8808, 7621],
},
{
name: 'austin williams',
age: 66,
team_ids: [9125, 4445],
},
{
name: 'alex rodriguez',
age: 27,
team_ids: [],
},
];
const result = data.filter(item => item.team_ids.indexOf(1234) !== -1)
console.log(result);
let data = [{
name: 'jake fisher',
age: 24,
team_ids: [1234, 5678, 9125],
},
{
name: 'kelly smith',
age: 46,
team_ids: [3331, 8884, 1234, 8808, 7621],
},
{
name: 'austin williams',
age: 66,
team_ids: [9125, 4445],
},
{
name: 'alex rodriguez',
age: 27,
team_ids: [],
},
];
const result = data.filter(item => item.team_ids.includes(1234));
console.log(result);
我有一组与此类似的对象
let data = [
{
name: 'jake fisher',
age: 24,
team_ids: [1234, 5678, 9125],
},
{
name: 'kelly smith',
age: 46,
team_ids: [3331, 8884, 1234, 8808, 7621],
},
{
name: 'austin williams',
age: 66,
team_ids: [9125, 4445],
},
{
name: 'alex rodriguez',
age: 27,
team_ids: [],
},
];
我正在尝试将此对象数组过滤为仅包含 team_ids 个 1234 的对象 所以在这个例子中,仅有的两个拥有匹配的团队 ID 的是“Jake Fisher”和“Kelly Smith”。
我尝试了一些其他解决方案,其中一些让我相当接近,但似乎有一些严重的缺陷。我认为真正让我失望的是它是一个嵌套数组(我正在学习,但我没有 运行 经常参与其中!)任何帮助将不胜感激!
let data = [{
name: 'jake fisher',
age: 24,
team_ids: [1234, 5678, 9125],
},
{
name: 'kelly smith',
age: 46,
team_ids: [3331, 8884, 1234, 8808, 7621],
},
{
name: 'austin williams',
age: 66,
team_ids: [9125, 4445],
},
{
name: 'alex rodriguez',
age: 27,
team_ids: [],
},
];
const result = data.filter(item => item.team_ids.indexOf(1234) !== -1)
console.log(result);
let data = [{
name: 'jake fisher',
age: 24,
team_ids: [1234, 5678, 9125],
},
{
name: 'kelly smith',
age: 46,
team_ids: [3331, 8884, 1234, 8808, 7621],
},
{
name: 'austin williams',
age: 66,
team_ids: [9125, 4445],
},
{
name: 'alex rodriguez',
age: 27,
team_ids: [],
},
];
const result = data.filter(item => item.team_ids.includes(1234));
console.log(result);