[英]Join two elements into a string type element in an array
在sorted
的對象數組中
sorted = [{…}, {…}, {…}]
(3) [{…}, {…}, {…}]
0: {firstName: "john", lastName: "Doe", age: 36, gender: "male"}
1: {lastName: "Latt", age: 40, gender: "male"}
2: {firstName: "Tom", age: 22, gender: "male"}
如果兩個都存在,我如何返回一個獲得"firstName+' '+lastName"
的數組,如果沒有給出firstName
或lastName
,則返回現有值之一?
我想使用.map.filter(true).join(' ')
例子:
["john Doe", "Latt", "Tom"]
您不需要過濾器和連接 - 它會不必要地影響性能。
如果您需要使用join
和filter
功能的答案@Ever Dev 的答案非常好
var sorted = [ {firstName: "john", lastName: "Doe", age: 36, gender: "male"}, {lastName: "Latt", age: 40, gender: "male"}, {firstName: "Tom", age: 22, gender: "male"} ] var result = sorted.map(val => (`${val.firstName ? val.firstName: ''} ${val.lastName? val.lastName: ''}`).trim() ) //.join(' '); console.log(result);
const sort = [ {firstName: "john", lastName: "Doe", age: 36, gender: "male"}, {lastName: "Latt", age: 40, gender: "male"}, {firstName: "Tom", age: 22, gender: "male"} ]; console.log( sort.map(item => [item.firstName, item.lastName].filter(v => !!v).join(' ') ))
您將需要.map()
每個項目並應用您的邏輯
sorted.map(person => {
return `${person.firstName}${person.firstName && person.lastName ? ' ' : ''}${person.lastName}`;
});
你要找的是一張地圖()
> sorted.map(user => {
> if (user.firstName && user.lastName) return user.firstName + " " +
> user.lastName
> if (user.firstName) return user.firstName
> if (user.lastName) return user.lastName
> return ""
> })
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.