Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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_Iteration - Fatal编程技术网

javascript:通过嵌套对象/数组循环并添加属性

javascript:通过嵌套对象/数组循环并添加属性,javascript,arrays,iteration,Javascript,Arrays,Iteration,我对Javascript不是很在行。我有一个嵌套数组,它是后端数据的JSON表示。它显示了校样列表和每个校样中使用的图像。其外观如下所示: var project = [{ "proof":"Proof_1", "images":[ { "image_id":"12469", "name":"1911791794.jpg", }, { "image_id":"1

我对Javascript不是很在行。我有一个嵌套数组,它是后端数据的JSON表示。它显示了校样列表和每个校样中使用的图像。其外观如下所示:

var project = [{
    "proof":"Proof_1",
    "images":[
        {
            "image_id":"12469",
            "name":"1911791794.jpg",
        },
        {
            "image_id":"12470",
            "name":"1911802897.jpg"
        },
        {
            "image_id":"12471",
            "name":"1911761073.jpg"
        }
},
{
    "proof":"Proof_2",
    "images":[
        {
            "image_id":"12469",
            "name":"1911791794.jpg",
        },
        {
            "image_id":"12470",
            "name":"1911802897.jpg"
        }
}];
我想将图像计数添加到每个校对部分,以便修改后的数据结构如下所示:

var project = [{
    "proof":"Proof_1",
    "image_count": 3, //<----this is new property I want to add
    "images":[
        {
            "image_id":"12469",
            ...
var项目=[{
“证明”:“证明1”,

“图像计数”:3,//您可以使用
.map
或简单循环

var项目=[{
“证明”:“证明1”,
“图像”:[{
“图像id”:“12469”,
“名称”:“1911791794.jpg”,
}, {
“图像id”:“12470”,
“名称”:“1911802897.jpg”
}, {
“图像id”:“12471”,
“名称”:“1911761073.jpg”
}]
}, {
“证明”:“证明2”,
“图像”:[{
“图像id”:“12469”,
“名称”:“1911791794.jpg”,
}, {
“图像id”:“12470”,
“名称”:“1911802897.jpg”
}]
}];
projects=projects.map(函数(元素){
element.image\u count=element.images.length;
返回元素;
});
console.log(项目);
var len=projects.length,i;
对于(i=0;iconsole.log(projects);
您可以使用
.map
或简单循环

var项目=[{
“证明”:“证明1”,
“图像”:[{
“图像id”:“12469”,
“名称”:“1911791794.jpg”,
}, {
“图像id”:“12470”,
“名称”:“1911802897.jpg”
}, {
“图像id”:“12471”,
“名称”:“1911761073.jpg”
}]
}, {
“证明”:“证明2”,
“图像”:[{
“图像id”:“12469”,
“名称”:“1911791794.jpg”,
}, {
“图像id”:“12470”,
“名称”:“1911802897.jpg”
}]
}];
projects=projects.map(函数(元素){
element.image\u count=element.images.length;
返回元素;
});
console.log(项目);
var len=projects.length,i;
对于(i=0;i
您可以利用以下方法:

此外,正如@Sebastian Lasse指出的,您应该使用复数形式命名数组,以避免混淆(
projects
,而不是
project
)。

您可以利用以下方法:


此外,正如@Sebastian Lasse所指出的,您应该使用复数形式命名数组以避免混淆(
projects
,而不是
project
)。

在更正JSON中缺少的
]
错误后,您可以执行以下操作:

project.forEach(函数(证明){
proof.image\u count=proof.images.length;
})

演示->

在更正JSON中缺少的
]
错误后,您可以执行以下操作:

project.forEach(函数(证明){
proof.image\u count=proof.images.length;
})

演示->

对。你应该用复数形式命名数组-“项目”。这是一个惯例,以避免混淆。正如我所料。没有理由。谢谢你的回答。你应该用复数形式命名数组-“项目”。这是一个避免混淆的惯例。正如我所预料的。没有理由。谢谢你的回答。事实上,他想要的是
image\u count
,而不是
imageCount
。@DanielKmak,谢谢你,我想我对camelCase太有意见了:(是的,我一开始也想这么做。
camelCase
太好了。:t谢谢你的回答实际上,他想要的是
image\u count
而不是
imageCount
。@DanielKmak,谢谢你,我想我对camelCase太有意见了:(是的,我一开始也想这么做。
camelCase
太好了。:d谢谢你的回答如果你找到了解决方案,请将其标记为接受答案。如果你找到了解决方案,请将其标记为接受答案。
project = project.map(function (item) {
    item.image_count = item.images.length;
    return item;
});