簡體   English   中英

將兩個元素連接成一個數組中的字符串類型元素

[英]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"的數組,如果沒有給出firstNamelastName ,則返回現有值之一?

我想使用.map.filter(true).join(' ')

例子:

["john Doe", "Latt", "Tom"]

您不需要過濾器和連接 - 它會不必要地影響性能。

如果您需要使用joinfilter功能的答案@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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM