2016-11-16 80 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 :) –