Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
数组内循环对象数组内对象JavaScript_Javascript_Arrays_Loops_Ecmascript 6 - Fatal编程技术网

数组内循环对象数组内对象JavaScript

数组内循环对象数组内对象JavaScript,javascript,arrays,loops,ecmascript-6,Javascript,Arrays,Loops,Ecmascript 6,我试图在数组中循环对象,在数组中循环对象,我真的很困惑 这是我的arr: var arr = [ { title: "Harry Potter", categories: [ { id: 39, name: "Popular Books" }, { id: 3, name: "Kids" }, { id: 79, name: "All Books" } ] }, { title: "Pride and Prejudice", categories: [ { id: 36, name: "Cl

我试图在数组中循环对象,在数组中循环对象,我真的很困惑

这是我的arr:

var arr = [
{
title: "Harry Potter",
categories: [
{
id: 39,
name: "Popular Books"
},
{
id: 3,
name: "Kids"
},
{
id: 79,
name: "All Books"
}
]
},


{
title: "Pride and Prejudice",
categories: [
{
id: 36,
name: "Classic Books"
},
{
id: 3,
name: "Woman"
},
{
id: 79,
name: "All Books"
}
]
}
]
我怎样才能得到只有类别名称“Kids”的书的标题

现在我能想到的就是:

var find = function(arr){
  for(var i=0; i<arr.length; i++){
    for(var j=0; j<arr[i].categories; j++){
      console.log(arr[i].categories[j].name)
    }
  }
}
var find=函数(arr){
对于(var i=0;i,您可以使用filter筛选出那些类别与“Kids”匹配的数组元素,然后将它们的标题映射到一个新数组中

arr.filter( i => i.categories.some(j => j.name ==="Kids") ).map(k => k.title )
var-arr=[{
标题:“哈利波特”,
类别:[{
身份证号码:39,
名称:“畅销书”
},
{
id:3,
名字:“孩子们”
},
{
id:79,
名称:“所有书籍”
}
]
},
{
标题:“傲慢与偏见”,
类别:[{
id:36,
名称:“经典书籍”
},
{
id:3,
姓名:“女人”
},
{
id:79,
名称:“所有书籍”
}
]
}
];
console.log(arr.filter(i=>i.categories.some(j=>j.name==“Kids”)).map(k=>k.title));
您可以使用filter筛选出那些类别与“Kids”匹配的数组元素,然后将它们的标题映射到新数组中

arr.filter( i => i.categories.some(j => j.name ==="Kids") ).map(k => k.title )
var-arr=[{
标题:“哈利波特”,
类别:[{
身份证号码:39,
名称:“畅销书”
},
{
id:3,
名字:“孩子们”
},
{
id:79,
名称:“所有书籍”
}
]
},
{
标题:“傲慢与偏见”,
类别:[{
id:36,
名称:“经典书籍”
},
{
id:3,
姓名:“女人”
},
{
id:79,
名称:“所有书籍”
}
]
}
];
console.log(arr.filter(i=>i.categories.some(j=>j.name==“Kids”)).map(k=>k.title));
试试看:

var find = function(arr, name) {
    for (var i = 0; i < arr.length; i++) {
        for (var j = 0; j < arr[i].categories.length; j++) {
            if (arr[i].categories[j].name === name) {
                return arr[i].categories[j];
            }
        }
    }
}

find(arr, 'Kids')
var find=函数(arr,name){
对于(变量i=0;i
试试看:

var find = function(arr, name) {
    for (var i = 0; i < arr.length; i++) {
        for (var j = 0; j < arr[i].categories.length; j++) {
            if (arr[i].categories[j].name === name) {
                return arr[i].categories[j];
            }
        }
    }
}

find(arr, 'Kids')
var find=函数(arr,name){
对于(变量i=0;i<或代码>你可能的副本的副本与我的完全一样。没有找到这个答案。只是一个指针,你使用3个循环。<代码>。过滤器< /代码>,<代码>。一些< /代码>然后>代码> map < /代码>。可以减少使用<代码>的迭代。减少< /代码> +代码>。一些< /代码>如果它帮助了你,考虑接受它作为回答。如果有帮助,我接受了答案(甚至不知道我能做到)Hi@dev8080:我的要求和这个问题差不多。我也尝试了你的答案,但没有得到确切的结果。你能帮我吗?你的答案和我的完全一样。没有看到这个答案。只是一个指针,你使用了3个循环。
。过滤器
。一些
,然后是
。映射
。你可以使用g <代码> >减少 +>代码>一些如果它帮助了你,考虑接受它作为答案。肯定有帮助,我接受了答案(甚至不知道我能做)。HI @ DEV8080:我的要求几乎与这个问题相同。我尝试过你的答案,但是我没有得到确切的输出。你能帮助我吗?