2017-10-12 105 views
1

大家好,我有以下问题, 我有JSON对象的一个​​这样的数组:如何创建使用从另一个数组JSON对象的数组角JS

$scope.array_one=[ 

    { 
    "field1": "value 1", 
    "field2": "value 2", 
    "field3": "value 3", 
    "field4": "value 4", 
    "field5": "value 5", 
    "field6": "value 6", 
    "field7": "value 7", 
    "field8": "value 8" 
    }, 
    { 
    "field1": "value 1", 
    "field2": "value 2", 
    "field3": "value 3", 
    "field4": "value 4", 
    "field5": "value 5", 
    "field6": "value 6", 
    "field7": "value 7", 
    "field8": "value 8" 
    } 

    ... 
] 

我想创建一个新的数组(

[ 

    { 

    "field2": "value 2", 
    "field3": "value 3", 
    "field6": "value 6", 
    "field8": "value 8" 
    }, 
    { 
    "field2": "value 2", 
    "field3": "value 3", 
    "field6": "value 6", 
    "field8": "value 8" 
    } 

    ... 
] 

任何人都可以指导我如何做到这一点,我是USI:从包含$ scope.array_one)只有3场

这样的对象ng Angular js。

问候!

+0

您是否尝试过自己什么?尝试使用'Array.filter'来实现这一点。我认为这应该足够了。 –

+0

@ShivenSinha我想从array_one中只提取field2,field3,field6,field8,类似投影.. – James

回答

2

你可以用破坏希望部分映射到创建一个新的阵列。

var $scope = { array_one: [{ field1: "value 1", field2: "value 2", field3: "value 3", field4: "value 4", field5: "value 5", field6: "value 6", field7: "value 7", field8: "value 8" }, { field1: "value 1", field2: "value 2", field3: "value 3", field4: "value 4", field5: "value 5", field6: "value 6", field7: "value 7", field8: "value 8" }] }, 
 
    result = $scope.array_one.map(
 
     ({ field2, field3, field6, field8 }) => ({ field2, field3, field6, field8 }) 
 
    ); 
 

 
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

+0

谢谢你它工作正常(Y) – James

1

使用Array#Map()通过返回一个新的对象

let array_one = [ 
 
    { 
 
    "field1": "value 1", 
 
    "field2": "value 2", 
 
    "field3": "value 3", 
 
    "field4": "value 4", 
 
    "field5": "value 5", 
 
    "field6": "value 6", 
 
    "field7": "value 7", 
 
    "field8": "value 8" 
 
    }, 
 
    { 
 
    "field1": "value 1", 
 
    "field2": "value 2", 
 
    "field3": "value 3", 
 
    "field4": "value 4", 
 
    "field5": "value 5", 
 
    "field6": "value 6", 
 
    "field7": "value 7", 
 
    "field8": "value 8" 
 
    } 
 
]; 
 

 
let newArray = array_one.map(f => ({ 
 
    field2 : f.field1, 
 
    field3 : f.field3, 
 
    field6 : f.field6, 
 
    field8 : f.field8, 
 
})); 
 

 
console.log(newArray);

+0

hi @Weedoze ithink这是Angular 2的typeScript语法,我使用的是Angular js 1.X! – James

+0

@Ali答案中提供的代码完全不是打字稿,可以用于Angular或AngularJS。这是纯粹的ES6 – Weedoze

+0

你是对的,它工作正常非常感谢你的时间 – James

相关问题