Javascript- 从包含某个对象的数组中读取数据
Javascript- Reading data from an array with some object in it
我无法处理从其他对象读取数据的问题。
这是数据。遗憾的是,这不是英文的,但我认为这无关紧要。
[
{
termeknev: 'Adatmegosztó',
besorszam: 'TESZOR 61.20.42',
mennyegys: 'hó',
menny: 1,
nettoegysegar: '543,30',
nettoar: '543,30',
afakulcs: 5,
afaertek: '27,16',
bruttoar: '570,46',
id: 1,
},
[
{
termeknev: 'Üzleti elõfizetés',
besorszam: 'TESZOR 61.20.12',
mennyegys: 'hó',
menny: 1,
nettoegysegar: '6000,00',
nettoar: '6000,00',
afakulcs: 27,
afaertek: '1620,00',
bruttoar: '7620,00',
id: 2,
},
{
termeknev: 'Üzleti elõfizetés',
besorszam: 'TESZOR 61.20.12',
mennyegys: 'hó',
menny: 1,
nettoegysegar: '1000,00',
nettoar: '1000,00',
afakulcs: 27,
afaertek: '270,00',
bruttoar: '1270,00',
id: 3,
},
{
termeknev: 'Vállalati Hipernet Start',
besorszam: 'TESZOR 61.20.42',
mennyegys: 'hó',
menny: 1,
nettoegysegar: '2669,29',
nettoar: '2669,29',
afakulcs: 5,
afaertek: '133,46',
bruttoar: '2802,75',
id: 4,
},
{
termeknev: 'Korlátlan sebesség&adat opció',
besorszam: 'TESZOR 61.20.42',
mennyegys: 'hó',
menny: 1,
nettoegysegar: '2362,20',
nettoar: '2362,20',
afakulcs: 5,
afaertek: '118,11',
bruttoar: '2480,31',
id: 5,
},
],
[
{
termeknev: 'Üzleti elõfizetés',
besorszam: 'TESZOR 61.20.12',
mennyegys: 'hó',
menny: 1,
nettoegysegar: '6000,00',
nettoar: '6000,00',
afakulcs: 27,
afaertek: '1620,00',
bruttoar: '7620,00',
id: 12,
},
{
termeknev: 'Üzleti elõfizetés',
besorszam: 'TESZOR 61.20.12',
mennyegys: 'hó',
menny: 1,
nettoegysegar: '1000,00',
nettoar: '1000,00',
afakulcs: 27,
afaertek: '270,00',
bruttoar: '1270,00',
id: 13,
},
{
termeknev: 'Vállalati Hipernet Start',
besorszam: 'TESZOR 61.20.42',
mennyegys: 'hó',
menny: 1,
nettoegysegar: '2669,29',
nettoar: '2669,29',
afakulcs: 5,
afaertek: '133,46',
bruttoar: '2802,75',
id: 14,
},
],
{
termeknev: 'Autóskártya',
besorszam: 'TESZOR 61.20.12',
mennyegys: 'hó',
menny: 1,
nettoegysegar: '1000,00',
nettoar: '1000,00',
afakulcs: 27,
afaertek: '270,00',
bruttoar: '1270,00',
id: 20,
},
];
问题是,如果我想读取“termeknev”的数据,我会得到
[ "Adatmegosztó", null, null, "Autóskártya" ]
我认为问题出在“null”是另一个数组,但我尝试了很多方法都无法修复它。
有人可以帮助我吗?
持平
如果您不需要维护嵌套数组,您可以使用 Array#flat()
and then map()
展平外部数组以检索所需的 属性.
const input = [{ termeknev: 'Adatmegosztó', besorszam: 'TESZOR 61.20.42', mennyegys: 'hó', menny: 1, nettoegysegar: '543,30', nettoar: '543,30', afakulcs: 5, afaertek: '27,16', bruttoar: '570,46', id: 1, }, [{ termeknev: 'Üzleti elõfizetés', besorszam: 'TESZOR 61.20.12', mennyegys: 'hó', menny: 1, nettoegysegar: '6000,00', nettoar: '6000,00', afakulcs: 27, afaertek: '1620,00', bruttoar: '7620,00', id: 2, }, { termeknev: 'Üzleti elõfizetés', besorszam: 'TESZOR 61.20.12', mennyegys: 'hó', menny: 1, nettoegysegar: '1000,00', nettoar: '1000,00', afakulcs: 27, afaertek: '270,00', bruttoar: '1270,00', id: 3, }, { termeknev: 'Vállalati Hipernet Start', besorszam: 'TESZOR 61.20.42', mennyegys: 'hó', menny: 1, nettoegysegar: '2669,29', nettoar: '2669,29', afakulcs: 5, afaertek: '133,46', bruttoar: '2802,75', id: 4, }, { termeknev: 'Korlátlan sebesség&adat opció', besorszam: 'TESZOR 61.20.42', mennyegys: 'hó', menny: 1, nettoegysegar: '2362,20', nettoar: '2362,20', afakulcs: 5, afaertek: '118,11', bruttoar: '2480,31', id: 5, },], [{ termeknev: 'Üzleti elõfizetés', besorszam: 'TESZOR 61.20.12', mennyegys: 'hó', menny: 1, nettoegysegar: '6000,00', nettoar: '6000,00', afakulcs: 27, afaertek: '1620,00', bruttoar: '7620,00', id: 12, }, { termeknev: 'Üzleti elõfizetés', besorszam: 'TESZOR 61.20.12', mennyegys: 'hó', menny: 1, nettoegysegar: '1000,00', nettoar: '1000,00', afakulcs: 27, afaertek: '270,00', bruttoar: '1270,00', id: 13, }, { termeknev: 'Vállalati Hipernet Start', besorszam: 'TESZOR 61.20.42', mennyegys: 'hó', menny: 1, nettoegysegar: '2669,29', nettoar: '2669,29', afakulcs: 5, afaertek: '133,46', bruttoar: '2802,75', id: 14, },], { termeknev: 'Autóskártya', besorszam: 'TESZOR 61.20.12', mennyegys: 'hó', menny: 1, nettoegysegar: '1000,00', nettoar: '1000,00', afakulcs: 27, afaertek: '270,00', bruttoar: '1270,00', id: 20, },];
const termeknevFlat = input.flat().map(({ termeknev }) => termeknev);
console.log('Flat:', termeknevFlat);
嵌套(已知深度)
如果您需要维护嵌套数组并且您知道只有两层嵌套,您可以使用嵌套 map()
调用
const input = [{ termeknev: 'Adatmegosztó', besorszam: 'TESZOR 61.20.42', mennyegys: 'hó', menny: 1, nettoegysegar: '543,30', nettoar: '543,30', afakulcs: 5, afaertek: '27,16', bruttoar: '570,46', id: 1, }, [{ termeknev: 'Üzleti elõfizetés', besorszam: 'TESZOR 61.20.12', mennyegys: 'hó', menny: 1, nettoegysegar: '6000,00', nettoar: '6000,00', afakulcs: 27, afaertek: '1620,00', bruttoar: '7620,00', id: 2, }, { termeknev: 'Üzleti elõfizetés', besorszam: 'TESZOR 61.20.12', mennyegys: 'hó', menny: 1, nettoegysegar: '1000,00', nettoar: '1000,00', afakulcs: 27, afaertek: '270,00', bruttoar: '1270,00', id: 3, }, { termeknev: 'Vállalati Hipernet Start', besorszam: 'TESZOR 61.20.42', mennyegys: 'hó', menny: 1, nettoegysegar: '2669,29', nettoar: '2669,29', afakulcs: 5, afaertek: '133,46', bruttoar: '2802,75', id: 4, }, { termeknev: 'Korlátlan sebesség&adat opció', besorszam: 'TESZOR 61.20.42', mennyegys: 'hó', menny: 1, nettoegysegar: '2362,20', nettoar: '2362,20', afakulcs: 5, afaertek: '118,11', bruttoar: '2480,31', id: 5, },], [{ termeknev: 'Üzleti elõfizetés', besorszam: 'TESZOR 61.20.12', mennyegys: 'hó', menny: 1, nettoegysegar: '6000,00', nettoar: '6000,00', afakulcs: 27, afaertek: '1620,00', bruttoar: '7620,00', id: 12, }, { termeknev: 'Üzleti elõfizetés', besorszam: 'TESZOR 61.20.12', mennyegys: 'hó', menny: 1, nettoegysegar: '1000,00', nettoar: '1000,00', afakulcs: 27, afaertek: '270,00', bruttoar: '1270,00', id: 13, }, { termeknev: 'Vállalati Hipernet Start', besorszam: 'TESZOR 61.20.42', mennyegys: 'hó', menny: 1, nettoegysegar: '2669,29', nettoar: '2669,29', afakulcs: 5, afaertek: '133,46', bruttoar: '2802,75', id: 14, },], { termeknev: 'Autóskártya', besorszam: 'TESZOR 61.20.12', mennyegys: 'hó', menny: 1, nettoegysegar: '1000,00', nettoar: '1000,00', afakulcs: 27, afaertek: '270,00', bruttoar: '1270,00', id: 20, },];
const termeknevNested = input.map(o =>
Array.isArray(o)
? o.map(({ termeknev }) => termeknev)
: o.termeknev
);
console.log('\nNested:', termeknevNested);
递归(任意深度)
如果嵌套可以任意深,您可以编写一个接受回调的递归映射函数。
const input = [{ termeknev: 'Adatmegosztó', besorszam: 'TESZOR 61.20.42', mennyegys: 'hó', menny: 1, nettoegysegar: '543,30', nettoar: '543,30', afakulcs: 5, afaertek: '27,16', bruttoar: '570,46', id: 1, }, [{ termeknev: 'Üzleti elõfizetés', besorszam: 'TESZOR 61.20.12', mennyegys: 'hó', menny: 1, nettoegysegar: '6000,00', nettoar: '6000,00', afakulcs: 27, afaertek: '1620,00', bruttoar: '7620,00', id: 2, }, { termeknev: 'Üzleti elõfizetés', besorszam: 'TESZOR 61.20.12', mennyegys: 'hó', menny: 1, nettoegysegar: '1000,00', nettoar: '1000,00', afakulcs: 27, afaertek: '270,00', bruttoar: '1270,00', id: 3, }, { termeknev: 'Vállalati Hipernet Start', besorszam: 'TESZOR 61.20.42', mennyegys: 'hó', menny: 1, nettoegysegar: '2669,29', nettoar: '2669,29', afakulcs: 5, afaertek: '133,46', bruttoar: '2802,75', id: 4, }, { termeknev: 'Korlátlan sebesség&adat opció', besorszam: 'TESZOR 61.20.42', mennyegys: 'hó', menny: 1, nettoegysegar: '2362,20', nettoar: '2362,20', afakulcs: 5, afaertek: '118,11', bruttoar: '2480,31', id: 5, }, [{ termeknev: 'Üzleti elõfizetés', besorszam: 'TESZOR 61.20.12', mennyegys: 'hó', menny: 1, nettoegysegar: '6000,00', nettoar: '6000,00', afakulcs: 27, afaertek: '1620,00', bruttoar: '7620,00', id: 2, }, { termeknev: 'Üzleti elõfizetés', besorszam: 'TESZOR 61.20.12', mennyegys: 'hó', menny: 1, nettoegysegar: '1000,00', nettoar: '1000,00', afakulcs: 27, afaertek: '270,00', bruttoar: '1270,00', id: 3, }, { termeknev: 'Vállalati Hipernet Start', besorszam: 'TESZOR 61.20.42', mennyegys: 'hó', menny: 1, nettoegysegar: '2669,29', nettoar: '2669,29', afakulcs: 5, afaertek: '133,46', bruttoar: '2802,75', id: 4, }, { termeknev: 'Korlátlan sebesség&adat opció', besorszam: 'TESZOR 61.20.42', mennyegys: 'hó', menny: 1, nettoegysegar: '2362,20', nettoar: '2362,20', afakulcs: 5, afaertek: '118,11', bruttoar: '2480,31', id: 5, },]], [{ termeknev: 'Üzleti elõfizetés', besorszam: 'TESZOR 61.20.12', mennyegys: 'hó', menny: 1, nettoegysegar: '6000,00', nettoar: '6000,00', afakulcs: 27, afaertek: '1620,00', bruttoar: '7620,00', id: 12, }, { termeknev: 'Üzleti elõfizetés', besorszam: 'TESZOR 61.20.12', mennyegys: 'hó', menny: 1, nettoegysegar: '1000,00', nettoar: '1000,00', afakulcs: 27, afaertek: '270,00', bruttoar: '1270,00', id: 13, }, { termeknev: 'Vállalati Hipernet Start', besorszam: 'TESZOR 61.20.42', mennyegys: 'hó', menny: 1, nettoegysegar: '2669,29', nettoar: '2669,29', afakulcs: 5, afaertek: '133,46', bruttoar: '2802,75', id: 14, },], { termeknev: 'Autóskártya', besorszam: 'TESZOR 61.20.12', mennyegys: 'hó', menny: 1, nettoegysegar: '1000,00', nettoar: '1000,00', afakulcs: 27, afaertek: '270,00', bruttoar: '1270,00', id: 20, },];
const recursiveMap = (arr, cb) =>
arr.map((obj, i, _arr) =>
Array.isArray(obj)
? recursiveMap(obj, cb)
: cb(obj, i, _arr)
)
const termeknevRecursive = recursiveMap(input, ({ termeknev }) => termeknev);
console.log('\nRecursive:', termeknevRecursive);
数据中的第二个和第三个元素的类型是 array
而不是 object
。
因此,如果您只是获得像 data[1].termeknev
这样的值,它将 return 为空,因为 data[1]
中没有 属性 termeknev
。您需要像 data[1][0].termeknev
.
一样访问它
如果您正在遍历数据数组,只需在每次迭代中检查元素是否为 array
类型,如果是,您需要遍历该嵌套数组以获取实际值。
我无法处理从其他对象读取数据的问题。
这是数据。遗憾的是,这不是英文的,但我认为这无关紧要。
[
{
termeknev: 'Adatmegosztó',
besorszam: 'TESZOR 61.20.42',
mennyegys: 'hó',
menny: 1,
nettoegysegar: '543,30',
nettoar: '543,30',
afakulcs: 5,
afaertek: '27,16',
bruttoar: '570,46',
id: 1,
},
[
{
termeknev: 'Üzleti elõfizetés',
besorszam: 'TESZOR 61.20.12',
mennyegys: 'hó',
menny: 1,
nettoegysegar: '6000,00',
nettoar: '6000,00',
afakulcs: 27,
afaertek: '1620,00',
bruttoar: '7620,00',
id: 2,
},
{
termeknev: 'Üzleti elõfizetés',
besorszam: 'TESZOR 61.20.12',
mennyegys: 'hó',
menny: 1,
nettoegysegar: '1000,00',
nettoar: '1000,00',
afakulcs: 27,
afaertek: '270,00',
bruttoar: '1270,00',
id: 3,
},
{
termeknev: 'Vállalati Hipernet Start',
besorszam: 'TESZOR 61.20.42',
mennyegys: 'hó',
menny: 1,
nettoegysegar: '2669,29',
nettoar: '2669,29',
afakulcs: 5,
afaertek: '133,46',
bruttoar: '2802,75',
id: 4,
},
{
termeknev: 'Korlátlan sebesség&adat opció',
besorszam: 'TESZOR 61.20.42',
mennyegys: 'hó',
menny: 1,
nettoegysegar: '2362,20',
nettoar: '2362,20',
afakulcs: 5,
afaertek: '118,11',
bruttoar: '2480,31',
id: 5,
},
],
[
{
termeknev: 'Üzleti elõfizetés',
besorszam: 'TESZOR 61.20.12',
mennyegys: 'hó',
menny: 1,
nettoegysegar: '6000,00',
nettoar: '6000,00',
afakulcs: 27,
afaertek: '1620,00',
bruttoar: '7620,00',
id: 12,
},
{
termeknev: 'Üzleti elõfizetés',
besorszam: 'TESZOR 61.20.12',
mennyegys: 'hó',
menny: 1,
nettoegysegar: '1000,00',
nettoar: '1000,00',
afakulcs: 27,
afaertek: '270,00',
bruttoar: '1270,00',
id: 13,
},
{
termeknev: 'Vállalati Hipernet Start',
besorszam: 'TESZOR 61.20.42',
mennyegys: 'hó',
menny: 1,
nettoegysegar: '2669,29',
nettoar: '2669,29',
afakulcs: 5,
afaertek: '133,46',
bruttoar: '2802,75',
id: 14,
},
],
{
termeknev: 'Autóskártya',
besorszam: 'TESZOR 61.20.12',
mennyegys: 'hó',
menny: 1,
nettoegysegar: '1000,00',
nettoar: '1000,00',
afakulcs: 27,
afaertek: '270,00',
bruttoar: '1270,00',
id: 20,
},
];
问题是,如果我想读取“termeknev”的数据,我会得到
[ "Adatmegosztó", null, null, "Autóskártya" ]
我认为问题出在“null”是另一个数组,但我尝试了很多方法都无法修复它。
有人可以帮助我吗?
持平
如果您不需要维护嵌套数组,您可以使用 Array#flat()
and then map()
展平外部数组以检索所需的 属性.
const input = [{ termeknev: 'Adatmegosztó', besorszam: 'TESZOR 61.20.42', mennyegys: 'hó', menny: 1, nettoegysegar: '543,30', nettoar: '543,30', afakulcs: 5, afaertek: '27,16', bruttoar: '570,46', id: 1, }, [{ termeknev: 'Üzleti elõfizetés', besorszam: 'TESZOR 61.20.12', mennyegys: 'hó', menny: 1, nettoegysegar: '6000,00', nettoar: '6000,00', afakulcs: 27, afaertek: '1620,00', bruttoar: '7620,00', id: 2, }, { termeknev: 'Üzleti elõfizetés', besorszam: 'TESZOR 61.20.12', mennyegys: 'hó', menny: 1, nettoegysegar: '1000,00', nettoar: '1000,00', afakulcs: 27, afaertek: '270,00', bruttoar: '1270,00', id: 3, }, { termeknev: 'Vállalati Hipernet Start', besorszam: 'TESZOR 61.20.42', mennyegys: 'hó', menny: 1, nettoegysegar: '2669,29', nettoar: '2669,29', afakulcs: 5, afaertek: '133,46', bruttoar: '2802,75', id: 4, }, { termeknev: 'Korlátlan sebesség&adat opció', besorszam: 'TESZOR 61.20.42', mennyegys: 'hó', menny: 1, nettoegysegar: '2362,20', nettoar: '2362,20', afakulcs: 5, afaertek: '118,11', bruttoar: '2480,31', id: 5, },], [{ termeknev: 'Üzleti elõfizetés', besorszam: 'TESZOR 61.20.12', mennyegys: 'hó', menny: 1, nettoegysegar: '6000,00', nettoar: '6000,00', afakulcs: 27, afaertek: '1620,00', bruttoar: '7620,00', id: 12, }, { termeknev: 'Üzleti elõfizetés', besorszam: 'TESZOR 61.20.12', mennyegys: 'hó', menny: 1, nettoegysegar: '1000,00', nettoar: '1000,00', afakulcs: 27, afaertek: '270,00', bruttoar: '1270,00', id: 13, }, { termeknev: 'Vállalati Hipernet Start', besorszam: 'TESZOR 61.20.42', mennyegys: 'hó', menny: 1, nettoegysegar: '2669,29', nettoar: '2669,29', afakulcs: 5, afaertek: '133,46', bruttoar: '2802,75', id: 14, },], { termeknev: 'Autóskártya', besorszam: 'TESZOR 61.20.12', mennyegys: 'hó', menny: 1, nettoegysegar: '1000,00', nettoar: '1000,00', afakulcs: 27, afaertek: '270,00', bruttoar: '1270,00', id: 20, },];
const termeknevFlat = input.flat().map(({ termeknev }) => termeknev);
console.log('Flat:', termeknevFlat);
嵌套(已知深度)
如果您需要维护嵌套数组并且您知道只有两层嵌套,您可以使用嵌套 map()
调用
const input = [{ termeknev: 'Adatmegosztó', besorszam: 'TESZOR 61.20.42', mennyegys: 'hó', menny: 1, nettoegysegar: '543,30', nettoar: '543,30', afakulcs: 5, afaertek: '27,16', bruttoar: '570,46', id: 1, }, [{ termeknev: 'Üzleti elõfizetés', besorszam: 'TESZOR 61.20.12', mennyegys: 'hó', menny: 1, nettoegysegar: '6000,00', nettoar: '6000,00', afakulcs: 27, afaertek: '1620,00', bruttoar: '7620,00', id: 2, }, { termeknev: 'Üzleti elõfizetés', besorszam: 'TESZOR 61.20.12', mennyegys: 'hó', menny: 1, nettoegysegar: '1000,00', nettoar: '1000,00', afakulcs: 27, afaertek: '270,00', bruttoar: '1270,00', id: 3, }, { termeknev: 'Vállalati Hipernet Start', besorszam: 'TESZOR 61.20.42', mennyegys: 'hó', menny: 1, nettoegysegar: '2669,29', nettoar: '2669,29', afakulcs: 5, afaertek: '133,46', bruttoar: '2802,75', id: 4, }, { termeknev: 'Korlátlan sebesség&adat opció', besorszam: 'TESZOR 61.20.42', mennyegys: 'hó', menny: 1, nettoegysegar: '2362,20', nettoar: '2362,20', afakulcs: 5, afaertek: '118,11', bruttoar: '2480,31', id: 5, },], [{ termeknev: 'Üzleti elõfizetés', besorszam: 'TESZOR 61.20.12', mennyegys: 'hó', menny: 1, nettoegysegar: '6000,00', nettoar: '6000,00', afakulcs: 27, afaertek: '1620,00', bruttoar: '7620,00', id: 12, }, { termeknev: 'Üzleti elõfizetés', besorszam: 'TESZOR 61.20.12', mennyegys: 'hó', menny: 1, nettoegysegar: '1000,00', nettoar: '1000,00', afakulcs: 27, afaertek: '270,00', bruttoar: '1270,00', id: 13, }, { termeknev: 'Vállalati Hipernet Start', besorszam: 'TESZOR 61.20.42', mennyegys: 'hó', menny: 1, nettoegysegar: '2669,29', nettoar: '2669,29', afakulcs: 5, afaertek: '133,46', bruttoar: '2802,75', id: 14, },], { termeknev: 'Autóskártya', besorszam: 'TESZOR 61.20.12', mennyegys: 'hó', menny: 1, nettoegysegar: '1000,00', nettoar: '1000,00', afakulcs: 27, afaertek: '270,00', bruttoar: '1270,00', id: 20, },];
const termeknevNested = input.map(o =>
Array.isArray(o)
? o.map(({ termeknev }) => termeknev)
: o.termeknev
);
console.log('\nNested:', termeknevNested);
递归(任意深度)
如果嵌套可以任意深,您可以编写一个接受回调的递归映射函数。
const input = [{ termeknev: 'Adatmegosztó', besorszam: 'TESZOR 61.20.42', mennyegys: 'hó', menny: 1, nettoegysegar: '543,30', nettoar: '543,30', afakulcs: 5, afaertek: '27,16', bruttoar: '570,46', id: 1, }, [{ termeknev: 'Üzleti elõfizetés', besorszam: 'TESZOR 61.20.12', mennyegys: 'hó', menny: 1, nettoegysegar: '6000,00', nettoar: '6000,00', afakulcs: 27, afaertek: '1620,00', bruttoar: '7620,00', id: 2, }, { termeknev: 'Üzleti elõfizetés', besorszam: 'TESZOR 61.20.12', mennyegys: 'hó', menny: 1, nettoegysegar: '1000,00', nettoar: '1000,00', afakulcs: 27, afaertek: '270,00', bruttoar: '1270,00', id: 3, }, { termeknev: 'Vállalati Hipernet Start', besorszam: 'TESZOR 61.20.42', mennyegys: 'hó', menny: 1, nettoegysegar: '2669,29', nettoar: '2669,29', afakulcs: 5, afaertek: '133,46', bruttoar: '2802,75', id: 4, }, { termeknev: 'Korlátlan sebesség&adat opció', besorszam: 'TESZOR 61.20.42', mennyegys: 'hó', menny: 1, nettoegysegar: '2362,20', nettoar: '2362,20', afakulcs: 5, afaertek: '118,11', bruttoar: '2480,31', id: 5, }, [{ termeknev: 'Üzleti elõfizetés', besorszam: 'TESZOR 61.20.12', mennyegys: 'hó', menny: 1, nettoegysegar: '6000,00', nettoar: '6000,00', afakulcs: 27, afaertek: '1620,00', bruttoar: '7620,00', id: 2, }, { termeknev: 'Üzleti elõfizetés', besorszam: 'TESZOR 61.20.12', mennyegys: 'hó', menny: 1, nettoegysegar: '1000,00', nettoar: '1000,00', afakulcs: 27, afaertek: '270,00', bruttoar: '1270,00', id: 3, }, { termeknev: 'Vállalati Hipernet Start', besorszam: 'TESZOR 61.20.42', mennyegys: 'hó', menny: 1, nettoegysegar: '2669,29', nettoar: '2669,29', afakulcs: 5, afaertek: '133,46', bruttoar: '2802,75', id: 4, }, { termeknev: 'Korlátlan sebesség&adat opció', besorszam: 'TESZOR 61.20.42', mennyegys: 'hó', menny: 1, nettoegysegar: '2362,20', nettoar: '2362,20', afakulcs: 5, afaertek: '118,11', bruttoar: '2480,31', id: 5, },]], [{ termeknev: 'Üzleti elõfizetés', besorszam: 'TESZOR 61.20.12', mennyegys: 'hó', menny: 1, nettoegysegar: '6000,00', nettoar: '6000,00', afakulcs: 27, afaertek: '1620,00', bruttoar: '7620,00', id: 12, }, { termeknev: 'Üzleti elõfizetés', besorszam: 'TESZOR 61.20.12', mennyegys: 'hó', menny: 1, nettoegysegar: '1000,00', nettoar: '1000,00', afakulcs: 27, afaertek: '270,00', bruttoar: '1270,00', id: 13, }, { termeknev: 'Vállalati Hipernet Start', besorszam: 'TESZOR 61.20.42', mennyegys: 'hó', menny: 1, nettoegysegar: '2669,29', nettoar: '2669,29', afakulcs: 5, afaertek: '133,46', bruttoar: '2802,75', id: 14, },], { termeknev: 'Autóskártya', besorszam: 'TESZOR 61.20.12', mennyegys: 'hó', menny: 1, nettoegysegar: '1000,00', nettoar: '1000,00', afakulcs: 27, afaertek: '270,00', bruttoar: '1270,00', id: 20, },];
const recursiveMap = (arr, cb) =>
arr.map((obj, i, _arr) =>
Array.isArray(obj)
? recursiveMap(obj, cb)
: cb(obj, i, _arr)
)
const termeknevRecursive = recursiveMap(input, ({ termeknev }) => termeknev);
console.log('\nRecursive:', termeknevRecursive);
数据中的第二个和第三个元素的类型是 array
而不是 object
。
因此,如果您只是获得像 data[1].termeknev
这样的值,它将 return 为空,因为 data[1]
中没有 属性 termeknev
。您需要像 data[1][0].termeknev
.
如果您正在遍历数据数组,只需在每次迭代中检查元素是否为 array
类型,如果是,您需要遍历该嵌套数组以获取实际值。