简体   繁体   English

将两个元素连接成一个数组中的字符串类型元素

[英]Join two elements into a string type element in an array

In an array of objects sortedsorted的对象数组中

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"}

How do I return an array which got "firstName+' '+lastName" if both exists, if firstName or lastName is not given, return one of the existing values?如果两个都存在,我如何返回一个获得"firstName+' '+lastName"的数组,如果没有给出firstNamelastName ,则返回现有值之一?

I want to use .map.filter(true).join(' ')我想使用.map.filter(true).join(' ')

example:例子:

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

You don't need filter & join - It will unecessary affect performance.您不需要过滤器和连接 - 它会不必要地影响性能。

If you need the answer to use the join and the filter functions answer of @Ever Dev is quite good如果您需要使用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(' ') ))

You will need to .map() each item and apply your logic您将需要.map()每个项目并应用您的逻辑

sorted.map(person => {
  return `${person.firstName}${person.firstName && person.lastName ? ' ' : ''}${person.lastName}`;
});

What are you looking for is a map()你要找的是一张地图()

>     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