2016-11-16 57 views
3

我有一個從REST響應中動態加載的對象。現在我必須將這個對象轉換成2個數組。 1)一個數組,其中的鍵值爲null。 2)具有鍵值的數組,其值不爲空。將對象轉換爲angular2中的數組Typescript

而這兩個數組,我需要顯示他們在HTML中的鍵和按照排序順序的值。首先是非空值,然後是空值。

object1 : { 
'name' : 'xyz', 
'age' : '23', 
'dob' : null, 
'address' : null 
} 

在將此對象轉換爲數組時發現問題! 我一直在嘗試的是

this.notNullValues = new Array<string>(); 
for(let obj of this.object1){ 
console.log(obj); 
} 
+0

把json的對象一次..並告訴我們你想從哪個字段定義一個數組? –

+0

*「我需要」*不是問題。這不是一個代碼寫入服務。提供一個數據樣本以及您嘗試解決此問題的代碼。花幾分鐘時間閱讀[問] – charlietfl

+0

@charlietfl sry ...我的壞!我對堆棧溢出很陌生。我會用代碼更新我的問題。 –

回答

1

你可以看看下面的代碼。你也可以用Object.keys來代替for..in

此外,您還可以檢查這個樣子,if(object1[key] == null)

var object1 = { 
 
'name' : 'xyz', 
 
'age' : '23', 
 
'dob' : null, 
 
'address' : null 
 
}; 
 

 

 
var nullArray = []; 
 
var notNullArray = []; 
 

 
for(let key in object1){ 
 
    var item = {}; 
 
    item[key] = object1[key]; 
 
    
 
    if(object1[key]){ 
 
    notNullArray.push(item); 
 
    } else { 
 
    nullArray.push(item); 
 
    } 
 
} 
 

 
console.log(nullArray); 
 
console.log(notNullArray);

隨着Object.keys

var object1 = { 
 
    'name' : 'xyz', 
 
    'age' : '23', 
 
    'dob' : null, 
 
    'address' : null 
 
    }; 
 

 

 
    var nullArray = []; 
 
    var notNullArray = []; 
 

 
    Object.keys(object1).forEach(function(key) { 
 
    var item = {}; 
 
    item[key] = object1[key]; 
 
    
 
    if(object1[key]){ 
 
    notNullArray.push(item); 
 
    } else { 
 
    nullArray.push(item); 
 
    } 
 
}); 
 

 
    console.log(nullArray); 
 
    console.log(notNullArray);

+0

感謝您的時間!但主要的失蹤是打字稿! –

+0

此代碼轉換爲打字稿。有效!! (Y)非常感謝! –

+0

@RakeshChandra不客氣:-) – Aruna

0
var notNullValues = new Array(); 
    var nullValues = new Array(); 
    for(let key in object1){ 
    var value = object1[key]; 
    if(value ===null){ 
     nullValues.push({ 
     key: value; 
     }); 
    } else { 
     notNullValues.push({ 
      key: value; 
     }); 
    } 
}); 

希望它有幫助:)

+0

對不起!但是我想要的是打字稿! :( –

+0

好吧,我會將它改爲打字稿!!:D –

+0

我還在等待...... @ManishSingh :) –