javascript - 将带有对象的数组拆分为 2 个数组

标签 javascript arrays object underscore.js

我有一个包含多个对象的数组。我想将此数组拆分为多个数组。拆分的条件是 continent 项。

MyArray = [{continent:"europe", fruit:"orange", value:2},
           {continent:"asia", fruit:"banana", value:2},
           {continent:"europe", fruit:"apple", value:2},
           {continent:"asia", fruit:"apple", value:5}
          ];

输出:

[
 [{continent:"europe", fruit:"orange", value:2},
  {continent:"europe", fruit:"apple" value:2}
 ], [
  {continent:"asia", fruit:"banana", value:2},
  {continent:"asia", fruit:"apple" value:5}]
];

最佳答案

您可以搜索具有相同大陆的数组并更新此数组或使用实际对象推送一个新数组。

var array = [{ continent: "europe", fruit: "orange", value: 2 }, { continent: "asia", fruit: "banana", value: 2 }, { continent: "europe", fruit: "apple", value: 2 }, { continent: "asia", fruit: "apple", value: 5 }],
    grouped = array.reduce(function (r, o) {
        var group = r.find(([{ continent }]) => continent === o.continent)
        if (group) {
            group.push(o);
        } else {
            r.push([o]);
        }
        return r;
    }, []);
    
console.log(grouped);
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - 将带有对象的数组拆分为 2 个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48974820/

相关文章:

javascript - 如何比较格式为 dd/mm/yyyy hh :mm:ss in jquery 的两个日期

Javascript 自调用函数问题 (Behat/Mink/Sahi)

java - 为什么 getValue() 函数不适用于 HashMap?

javascript - 如何找到循环中对象数组的总和?

调用函数的 Javascript 对象名称?

javascript - 从 mysql 数据库加载特定行数并添加加载更多功能

arrays - 为什么 Array.count 不是 UInt?

javascript - ng 如果字符串包含 Angular

c++ - 在 C++ 中,如何确保一个对象在另一个对象之前构造?

javascript - 带有 javascript onclick 的多个 DOM 操作函数