我無法處理將資料讀取到其他物件的問題。
這是資料。遺憾的是,這不是英語,但我認為這并不重要。
[
{
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”是另一個陣列,但我嘗試了很多方法,但我無法修復它。
有人能幫我嗎?
uj5u.com熱心網友回復:
平坦的
如果您不需要維護嵌套陣列,您可以使用扁平化外部陣列Array#flat(),然后使用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);
嵌套(已知深度)
如果您需要維護嵌套陣列并且知道只有 2 級嵌套,則可以使用嵌套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);
uj5u.com熱心網友回復:
資料中的第二個和第三個元素是arraynot型別object。
因此,如果您只是獲得類似的值,它將回傳 null ,data[1].termeknev因為termeknev. data[1]您需要像data[1][0].termeknev.
如果您正在遍歷資料陣列,只需檢查元素是否為 type 的每次迭代array,如果是,則需要遍歷該嵌套陣列以獲取實際值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/452741.html
標籤:javascript 数组 目的 谷歌应用脚本
下一篇:如何在谷歌表格中動態格式化貨幣
