2017-10-12 115 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

相關問題