0
我試圖來過濾陣列,通過lodash得到一個地址簿中的電話號碼上,該結構是一樣的東西lodash使用地圖深嵌套數組和對象
var obj = {
'contacts': [{
'id': 1,
'displayName': 'John Doe',
'phonenumbers': [{
'id': '1',
'type': 'mobile',
"pref":false,
'value': '555-555'
}, {
'id': '2',
'type': 'mobile',
"pref":false,
'value': '555-554'
}]
}, {
'id': 2,
'displayName': 'Jane Doe',
'phonenumbers': [{
'id': '1',
'type': 'mobile',
"pref":false,
'value': '555-557'
}]
}]
}
我可以嘗試達到與電話號碼一樣的東西:
lodash.map(
contacts,
function(person) {
return { id: person.id,
displayName: person.displayName,
phoneNumbers: [
{
number: person.phoneNumbers[0].value,
type: person.phoneNumbers[0].type}
],
photos: person.photos };
}
);
但是當我想要得到的2和第三位person.phoneNumbers [1] .value的,我得到的錯誤時,有沒有第二個電話號碼,是有辦法得到他們沒有指定陣列中的位置? 輸出應該是一個具有聯繫人ID和電話號碼和類型的新陣列。
var ouptput= {
'contacts': [{
'id': 1,
'phonenumbers': [{
'type': 'mobile',
'value': '555-555'
}, {
'type': 'mobile',
'value': '555-554'
}]
}, {
'id': 2,
'phonenumbers': [{
'type': 'mobile',
'value': '555-557'
}]
}]
}
你甚至不需要使用ES6來做到這一點。雖然它確實使代碼更短,更好。 – vlaz
的確,它主要是一種語法的東西。此外:IE> 8. –
感謝它更好,而不使用lodash –