簡體   English   中英

javascript 中的數組內部的 Map object?

[英]Map object inside array in javascript?

這是我的數組:

const array = [
    {
        "fare": "399.00",
        "passenger": {
            "age": "21",
            "gender": "MALE",
            "name": "Test1"
        },
    },
    {
        "fare": "399.00",
        "passenger": {
            "age": "21",
            "gender": "FEMALE",
            "name": "Test2"
        },
    }
]

如何將map object里面的數組,以及如何將object轉換為所需的Z78E6221F6393D1456ZD81DB39

所需 output:

Test1(M), Test2(F)

上面包含“名字”和性別——如果是男性,那么只有“M”,如果女性只有“F”

截至目前,我嘗試過,

array.map(o => ({ name: o.passenger.name, gender: o.passenger.gender })))

但是如何按預期轉換 output !

像這樣

 const array = [{ "fare": "399.00", "passenger": { "age": "21", "gender": "MALE", "name": "Test1" }, }, { "fare": "399.00", "passenger": { "age": "21", "gender": "FEMALE", "name": "Test2" }, } ]; const output = array.map(({passenger}) => `${passenger.name}(${passenger.gender.slice(0,1)})`).join(", ") console.log(output);

只需循環您的數組並制作新字符串:

 const array = [ { "fare": "399.00", "passenger": { "age": "21", "gender": "MALE", "name": "Test1" }, }, { "fare": "399.00", "passenger": { "age": "21", "gender": "FEMALE", "name": "Test2" }, } ]; var states = array.map((o) => o.passenger.name + '(' + o.passenger.gender.substring(0, 1) + ')') console.log(states);

這是您想要的預期結果嗎?

 const array = [{ "fare": "399.00", "passenger": { "age": "21", "gender": "MALE", "name": "Test1" }, }, { "fare": "399.00", "passenger": { "age": "21", "gender": "FEMALE", "name": "Test2" }, }] const passengers = array.map(o => { const gender = o.passenger.gender == 'MALE'? 'M': 'F'; return o.passenger.name + '(' + gender + ')'; }) console.log(passengers.join(', ')); // Test1(M), Test2(F)

您可以將對象轉換為字符串並加入它們

 const array = [{ "fare": "399.00", "passenger": { "age": "21", "gender": "MALE", "name": "Test1" }, }, { "fare": "399.00", "passenger": { "age": "21", "gender": "FEMALE", "name": "Test2" }, } ] const output = array.map(o => o.passenger.name + (o.passenger.gender === "MALE"? "(M)": "(F)")).join(', ') console.log(output)

使用mapdestructruing

 const tests = (arr) => arr.map( ({ passenger: { gender: [G], name, }, }) => `${name}(${G})` ).join(", "); const array = [ { fare: "399.00", passenger: { age: "21", gender: "MALE", name: "Test1", }, }, { fare: "399.00", passenger: { age: "21", gender: "FEMALE", name: "Test2", }, }, ]; console.log(tests(array));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM