首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >连接javascript数组的每个对象属性值,属性是javascript中的字符串列表。

连接javascript数组的每个对象属性值,属性是javascript中的字符串列表。
EN

Stack Overflow用户
提问于 2022-04-09 23:35:01
回答 3查看 149关注 0票数 -3

我使用另一个字符串列表将对象数组转换为具有新属性的新数组,以读取javascript中的属性。

无功输出=

代码语言:javascript
复制
[
 {Id: '000000CayeAAC', Name: 'KCP13', FTA: 'LOS', FTN: 'M'}
 {Id: '000000CayLAAS', Name: 'KCN15', FTA: 'DC', FTN: 'M'}
 {Id: '000000CaxXAAS', Name: 'KCA21', FTA: 'AUS', FTN: 'M'}
 {Id: '000000CaxCAAS', Name: 'KCZ43', FTA: 'CA', FTN: 'M'}
]

var mypropertylist = 'Name','FTA','FTN';

我想要新的数组的类似于下面

var newArray =

代码语言:javascript
复制
 [ 
  {value: '000000CayeAAC', concatName: 'KCP13 - LOS - M'}
  {value: '000000CayLAAS', concatName: 'KCN15 - DC - M'}
  {value: '000000CaxXAAS', concatName: 'KCA21 - AUS - M'}
 ]

我试过这样做

代码语言:javascript
复制
output.map(item=>{
                    
                    this.newArray  = [...this.newArray,
                                            {value:item.Id, 
                                             concatName:item.Name + ' - '+item.FTA+ ' - '+item.FTN}];

我得到了想要的输出,但我希望通过使用mypropertylist动态获取

提前谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-04-10 00:14:42

那个?

代码语言:javascript
复制
const output = 
  [ { Id: '000000CayeAAC', Name: 'KCP13', FTA: 'LOS', FTN: 'M' } 
  , { Id: '000000CayLAAS', Name: 'KCN15', FTA: 'DC',  FTN: 'M' } 
  , { Id: '000000CaxXAAS', Name: 'KCA21', FTA: 'AUS', FTN: 'M' } 
  , { Id: '000000CaxCAAS', Name: 'KCZ43', FTA: 'CA',  FTN: 'M' } 
  ] 

const concatFunction = (arr, ...items) =>
  arr.map(({Id,...elms}) =>
    ({ value: Id
     , concatName: items.map( item => elms[item] ).join(' - ') 
    })
  )

console.log( concatFunction( output, 'Name', 'FTA', 'FTN' ))
代码语言:javascript
复制
.as-console-wrapper { max-height: 100% !important; top: 0; }
.as-console-row::after { display: none !important; }

票数 0
EN

Stack Overflow用户

发布于 2022-04-10 00:01:51

如果我理解的话,属性列表是一个键列表,其值应该连接起来以形成concatName。让我们先做好财产操纵.

代码语言:javascript
复制
// return a string containing the values of props in object, concatenated 
function concatValues(object, props) {
  const values = props.map(prop => object[prop]);
  return values.join(' - ');
}

接下来,我们需要一个转换对象、更改Id支柱和使用concatValues的东西.

代码语言:javascript
复制
// return an object with it's Id renamed and it's props concatenated
function transform(object, props) {
  return { value: object.Id, concatName: concatValues(object, props) }
}

然后,把它映射到输入上。演示..。

代码语言:javascript
复制
// return a string containing the values of props in object, concatenated 
function concatValues(object, props) {
  const values = props.map(prop => object[prop]);
  return values.join(' - ');
}

// return an object with it's Id renamed and it's props concatenated
function transform(object, props) {
  return { value: object.Id, concatName: concatValues(object, props) }
}

const arrayA = [
 {Id: '000000CayeAAC', Name: 'KCP13', FTA: 'LOS', FTN: 'M'},
 {Id: '000000CayLAAS', Name: 'KCN15', FTA: 'DC', FTN: 'M'},
 {Id: '000000CaxXAAS', Name: 'KCA21', FTA: 'AUS', FTN: 'M'},
 {Id: '000000CaxCAAS', Name: 'KCZ43', FTA: 'CA', FTN: 'M'}
];

const mypropertylist = ['Name','FTA','FTN'];
const arrayB = arrayA.map(el => transform(el, mypropertylist))
console.log(arrayB);

票数 1
EN

Stack Overflow用户

发布于 2022-04-09 23:43:41

代码语言:javascript
复制
var output = [
 {Id: '000000CayeAAC', Name: 'KCP13', FTA: 'LOS', FTN: 'M'},
 {Id: '000000CayLAAS', Name: 'KCN15', FTA: 'DC', FTN: 'M'},
 {Id: '000000CaxXAAS', Name: 'KCA21', FTA: 'AUS', FTN: 'M'},
 {Id: '000000CaxCAAS', Name: 'KCZ43', FTA: 'CA', FTN: 'M'}
];

var newArray = output.map(item => {
    return {Id: item.Id, concatName: [item.Name, item.FTA, item.FTN].join(" - ")};
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71812690

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档