根据条件将数组复制到另一个数组

Abh*_*ana 1 javascript angularjs

我正在寻找一种基于某种条件将数组列表复制到另一个列表的巧妙方法。我不想逐个复制元素。这也需要时间,当然还有很多行

MYJSON

$scope.leadsDataSource=[{
            id: 1,
            type: 1,
            typeName: "Lead",
            client: 1,
            clientName: "Ljungbloms Elektriska AB",
            marking: "Marking for Ljungbloms Elektriska AB",
            status: 2,
            statusName: "Open",
            stage: 2,
            stageName: "Stage 2",
            leadValue: 1,
            probability: 1,
            issuer: 1,
            issuerName: "Sales",
            handler: 1,
            handlerName: "Sales",
            created: 1462345200000,
            createdString: "2016-05-04"
        }, {
            id: 2,
            type: 1,
            typeName: "Lead",
            client: 2,
            clientName: "Solina Sweden AB",
            marking: "Marking for Solina Sweden AB",
            status: 1,
            statusName: "Closed",
            stage: 3,
            stageName: "Stage 3",
            leadValue: 1,
            probability: 1,
            issuer: 1,
            issuerName: "Sales",
            handler: 1,
            handlerName: "Sales",
            created: 1462345200000,
            createdString: "2016-05-04"
        }, {
            id: 3,
            type: 2,
            typeName: "Opportunity",
            client: 3,
            clientName: "H & M Hennes & Mauritz GBC AB",
            marking: "Marking for H & M Hennes & Mauritz GBC AB",
            status: 3,
            statusName: "Pending",
            stage: 4,
            stageName: "Stage 4",
            leadValue: 1,
            probability: 1,
            issuer: 1,
            issuerName: "Sales",
            handler: 1,
            handlerName: "Sales",
            created: 1462345200000,
            createdString: "2016-05-04"
        }];
Run Code Online (Sandbox Code Playgroud)

条件脚本

 var dataSource=[];
        angular.forEach($scope.leadsDataSource, function (value, key) {
            if(value.typeName=='Lead'){
                 //**copy the row to dataSource**
            }
        });
Run Code Online (Sandbox Code Playgroud)

有没有什么巧妙的方法,我不必推动每个元素?

Nin*_*olz 6

你可以用 Array#filter

var dataSource = $scope.leadsDataSource.filter(function (a) {
        return a.typeName=='Lead';
    });
Run Code Online (Sandbox Code Playgroud)

var dataSource = $scope.leadsDataSource.filter(function (a) {
        return a.typeName=='Lead';
    });
Run Code Online (Sandbox Code Playgroud)

  • `语法错误:意外的标记{` (2认同)