簡體   English   中英

總結對象數組的數組

[英]Sum up arrays of an array of object

我有以下帶有對象的數組,該對象由一個數組組成。 我想返回數組“物種”的總長度。

let fish = [
    {
        "name": "salmon", 
        "species": [
            {
                "name": "atlantic salmon",
                "gender": "male"
            },
            {
                "name": "sockeye salmon",
                "gender": "female"
            },
        ],
    },  
    {
        "name": "carp", 
        "species": [
            {
                "name": "grass carp",
                "gender": "male"
            },
            {
                "name": "common carp",
                "gender": "female"
            },
        ],
    },  
]

我想從中得到 4 的結果,但我不太確定如何。 有什么建議? 謝謝!

試試這條線。 它工作正常。

let fish = [
    {
        "name": "salmon", 
        "species": [
            {
                "name": "atlantic salmon",
                "gender": "male"
            },
            {
                "name": "sockeye salmon",
                "gender": "female"
            },
        ],
    },  
    {
        "name": "carp", 
        "species": [
            {
                "name": "grass carp",
                "gender": "male"
            },
            {
                "name": "common salmon",
                "gender": "female"
            },
        ],
    },  
];
const speciesCount = fish.flatMap(f => f.species).length;
console.log(speciesCount);

您可以使用.reduce來累積species的長度

const res = fish.reduce((acc, el) => acc + el.species.length, 0)

 let fish = [ { name: "salmon", species: [ { name: "atlantic salmon", gender: "male", }, { name: "sockeye salmon", gender: "female", }, ], }, { name: "carp", species: [ { name: "grass carp", gender: "male", }, { name: "common salmon", gender: "female", }, ], }, ] const res = fish.reduce((acc, el) => acc + el.species.length, 0) console.log(res)

嘗試這個。

let count = 0;
for (let i = 0; i < fish.length; i++) {
  for (let j = 0; j < fish[i][species].length; i++) {
    count++;
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM