javascript - 根据值更改的时间将数组拆分为更小的数组

标签 javascript arrays ecmascript-6

还有其他几个类似的问题,但对于所有这些问题,排序键都是已知的。

所以这是我的问题。 考虑这个测试类:

class Test{
    constructor(){
        this.value1 = val1;
        this.value2 = val2;
        this.value3 = val3;
    }

这是一个比较函数

function compare(a,b){
    if(a.value3 < b.value3){
        return -1;
    if(a.value3 > b.value3){
        return 1;
    return 0
}

所以当我有一个 Test 数组 f.e. 尺码 50 我会像这样对这个数组进行排序。

arrayOfTest.sort(compare)

这将返回按value3排序的数组。现在我想根据 value3 的变化将这个大数组分成几个较小的数组。 例如:

arrayOfTest=[a = Test(value3 = 3),b = Test(value3 = 3),c = Test(value3 = 4)]

应该分为

array1 = [a = Test(value3 = 3),b = Test(value3 = 3)]

array3 = [c = Test(value3 = 4)]

最佳答案

一次性实现目标(无需先排序)的一种可能方法是按给定键进行分组,如以下代码片段所示:

var groupBy = function(xs, key) {
  return xs.reduce(function(rv, x) {
    (rv[x[key]] = rv[x[key]] || []).push(x);
    return rv;
  }, {});
};
// groupBy(arrayOfTest, 'value3')

关于javascript - 根据值更改的时间将数组拆分为更小的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44675017/

相关文章:

javascript - 在 Knockout JS foreach 循环中围绕每个 'n' 项放置一个容器

javascript - 为什么这个迭代器返回以下值?

angular - 为什么 Angular 9 必须预编译自己的代码?

javascript - 从数组中生成 n 组唯一对

C - 文件管理,无法获得想要的输出

javascript - javascript 数组对象逻辑中的小问题

javascript - 创建多个抽象类 javascript ES6

javascript - 触发输入文件点击不会弹出文件上传对话框

javascript - 为同位素强制换行

javascript - 对象函数在 JS 中不起作用