我有兩個陣列,如下所示:
const array1 = [
{ type: 'BA', value: 100 },
{ type: 'CA', value: 200 },
];
const array2 = [
{
NameBA: 'STANDARD',
NameDescriptionBA: 'STANDARD',
AgeBA: 0,
姓名CA: 'STANDARD',
NameDescriptionCA: 'STANDARD',
AgeCA: 0,
},
]
陣列1的型別值為'BA',我必須找到陣列2的鍵最后2個字符包括陣列1的型別值'BA',并合并到陣列1的相關物件。
我的預期結果是
cosnt array1 = [
{
type: 'BA'/span>,
value: 100,
NameBA: 'STANDARD',
NameDescriptionBA: 'STANDARD',
AgeBA: 0,
},
{
type: 'CA',
value: 200,
NameCA: 'STANDARD',
NameDescriptionCA: 'STANDARD',
AgeCA: 0,
},
]
我嘗試了下面的方法,但輸出結果不正確
const keys = Object.keys(array2[0] )。
array1.map(a => {
keys.map(b => {
if (b.includes(a.type) {
array2.map(c => {
a.b = c.b ?
})
}
});
});
uj5u.com熱心網友回復:
你只使用了第二個陣列中的一個物件,所以只要將該定義改為一個物件,你就可以將該物件轉換為鍵/值對,并filter()將它們縮小以匹配型別:
const array = [
{ type: 'BA', value: 100 },
{ type: 'CA', value: 200 },
];
const object = {
NameBA。'STANDARD'。
NameDescriptionBA: 'STANDARD',
AgeBA: 0,
姓名CA: 'STANDARD',
NameDescriptionCA: 'STANDARD',
AgeCA: 0,
};
const result = array.map(({type, value}) => ({
型別。
值。
...Object.fromEntries(
Object.entries(object)。 filter(([k, v]) => k.endsWith(type))
)
}));
console.log(result);
<iframe name="sif1" sandbox="allow-forms allow-modals allow-scripts" class="snippet-box-edit snippet-box-result" frameborder="0"></iframe>
如果你的第二個陣列
如果你的第二個陣列確實是一個包含多個物件的陣列,只需拋出一個flatMap()來平鋪所有物件條目:
const array1 = [
{ type: 'BA', value: 100 },
{ type: 'CA', value: 200 },
];
const array2 = [{
NameBA: 'STANDARD',
NameDescriptionBA: 'STANDARD',
AgeBA: 0,
姓名CA: 'STANDARD',
NameDescriptionCA: 'STANDARD',
AgeCA: 0,
}];
const result = array1.map(({type, value}) => ({
型別。
值。
...Object.fromEntries(
array2.flatMap(Object.entries)。 filter(([k, v]) => k.endsWith(type))
)
}));
console.log(result);
<iframe name="sif2" sandbox="allow-forms allow-modals allow-scripts" class="snippet-box-edit snippet-box-result" frameborder="0"></iframe>
uj5u.com熱心網友回復:
你可以這樣做。
>。const array1 = [
{ type: 'BA', value: 100 },
{ type: 'CA', value: 200 },
];
const array2 = [
{
NameBA: 'STANDARD',
NameDescriptionBA: 'STANDARD',
AgeBA: 0,
姓名CA: 'STANDARD',
NameDescriptionCA: 'STANDARD',
AgeCA: 0,
},
]
const keys = Object.keys(array2[0] )。)
const result = array1.map(a =>; {
let currentObject = {}。
keys.map(span class="hljs-params">b => {
if (b.indexOf(a.type) !== -1) {
currentObject = {
...currentObject,
...a,
[b]: array2[0] [b]
}
}
});
return currentObject;
});
console.log(result)
<iframe name="sif3" sandbox="allow-forms allow-modals allow-scripts" class="snippet-box-edit snippet-box-result" frameborder="0"></iframe>
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/333295.html
標籤:
