将json对象中某一字段转化为逗号连接字符串的3种方法

650 阅读1分钟

给出以下json数组,用一个方法实现将任意字段拼接成一个逗号分隔的字符串。

const jsonArr = [
    {'id': '1', 'name': 'a1'},
    {'id': '2', 'name': 'a2'},
    {'id': '3', 'name': 'a3'},
    {'id': '4', 'name': 'a4'},
    {'id': '5', 'name': 'a5'}
];

方法一:map + join

const joinJsonField = (jsonArr, fieldName) => {
    let a = [] ;
    jsonArr.map(item => {
        a.push(item[fieldName]);
    })
    let b = a.join(',');
    return b;
}

joinJsonField(jsonArr, 'name');  // 'a1,a2,a3,a4,a5'

方法二:map + 拼接 + substring

const joinJsonField = (jsonArr, fieldName) => {
    let a = '';
    jsonArr.map(item => {
        a += item[fieldName] + ','
    });
    return a.substring(0,a.length-1);
}

joinJsonField(jsonArr, 'name');  // 'a1,a2,a3,a4,a5'

方法三:reduce + 拼接

const joinJsonField3- = (jsonArr, fieldName) => {
    const result = jsonArr.reduce((pre, cur, index) => {
        if(index === 0) return pre.concat(cur[fieldName]);
        else return pre.concat(',' + cur[fieldName]);
    }, '');
    return result;
}

joinJsonField(jsonArr, 'name');  // 'a1,a2,a3,a4,a5'