给出以下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'