我使用另一个字符串列表将对象数组转换为具有新属性的新数组,以读取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 =
[
{value: '000000CayeAAC', concatName: 'KCP13 - LOS - M'}
{value: '000000CayLAAS', concatName: 'KCN15 - DC - M'}
{value: '000000CaxXAAS', concatName: 'KCA21 - AUS - M'}
]我试过这样做
output.map(item=>{
this.newArray = [...this.newArray,
{value:item.Id,
concatName:item.Name + ' - '+item.FTA+ ' - '+item.FTN}];我得到了想要的输出,但我希望通过使用mypropertylist动态获取
提前谢谢!
发布于 2022-04-10 00:14:42
那个?
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' )).as-console-wrapper { max-height: 100% !important; top: 0; }
.as-console-row::after { display: none !important; }
发布于 2022-04-10 00:01:51
如果我理解的话,属性列表是一个键列表,其值应该连接起来以形成concatName。让我们先做好财产操纵.
// 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的东西.
// 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) }
}然后,把它映射到输入上。演示..。
// 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);
发布于 2022-04-09 23:43:41
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(" - ")};
});https://stackoverflow.com/questions/71812690
复制相似问题