Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.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 ng在包含数据的数组上重复,内部数组的键值相似,是否将分组?_Javascript_Angularjs - Fatal编程技术网

Javascript ng在包含数据的数组上重复,内部数组的键值相似,是否将分组?

Javascript ng在包含数据的数组上重复,内部数组的键值相似,是否将分组?,javascript,angularjs,Javascript,Angularjs,我有一个包含另一个数据数组的数据数组,其中的key(typeofservicesigned:array(2))在两个内部数组中都是通用的,我希望以这样一种方式应用ng repeat,即相似的key值将分组在一起,而将一个组分开 有关更好的解释,请参见下文: Array = [ { Quotation:1200, TypeOfServiceAssigned:["Primary", "Partial Services"], VendorEmail:"A@gmail.com

我有一个包含另一个数据数组的数据数组,其中的key(typeofservicesigned:array(2))在两个内部数组中都是通用的,我希望以这样一种方式应用ng repeat,即相似的key值将分组在一起,而将一个组分开

有关更好的解释,请参见下文:

Array = [
  {
    Quotation:1200,
    TypeOfServiceAssigned:["Primary", "Partial Services"],
    VendorEmail:"A@gmail.com"
  },{
    Quotation:1350,
    TypeOfServiceAssigned:["Partial Services"],
    VendorEmail:"Add@gmail.com"
  }
];

我想在数组上应用ng repeat,这样它将根据ServicesSigned值的类型显示两个组,一个用于主服务,另一个用于部分服务。对于部分服务程序,它将向我显示两个列表。

最有效的方法是手工制作函数,以返回您想要的结果。。 ,然后像往常一样将其绑定到嵌套的ng repeat:)

然而,通常我们应该在服务器端/服务上这样做,但无论如何

function doGroupBy() {
    var result = {};
    for (var i = 0; i < input.length; ++i) {
        var current = input[i].TypeOfServiceAssigned;
        for (var j = 0; j < current.length; ++j)
            if (result[current[j]])
                result[current[j]].push(input[i]); // result[current[j]] = [...result[current[j]], input[i]];
            else
                result[current[j]] = [input[i]];
    }

    return result;
}

var input = [{ Quotation: 1200, TypeOfServiceAssigned: ["Primary", "Partial Services"], VendorEmail: "A@gmail.com" },
             { Quotation: 1350, TypeOfServiceAssigned: ["Partial Services"], VendorEmail: "Add@gmail.com" }];

var testResult = doGroupBy(input);

for (var key in testResult) {
    console.log('-----------');
    console.log(key);
    console.log(testResult[key]);
}
函数doGroupBy(){
var result={};
对于(变量i=0;i
我会在您的控制器或服务中准备阵列,无论您的情况如何。然后重复一遍。但是,你试过什么?请分享小提琴,因为你已经试过了。spread操作符正在angularjs中抛出错误,(在gulp控制台中)