如何将数组对象中的每个值转换为单个逗号分隔字符串?
如何将数组对象中的每个值转换为单个逗号分隔字符串?
嘿,我来帮你搞定这个问题!你想要把对象数组里的id属性值提取出来,拼成一个逗号分隔的字符串对吧?其实有几种简单的方法,我给你一步步说:
最简洁的解法:map() + join() 链式调用
这是最推荐的写法,代码简洁还易读:
const Collection = [{ id: 1 }, { id: 3 }, { id: 2 }, { id: 4 }]; // 先提取所有id,再拼接成字符串 const string = Collection.map(item => item.id).join(','); console.log(string); // 输出:"1,3,2,4"
map()方法会遍历整个数组,把每个对象转换成它的id值,这样我们就得到了一个纯数字数组[1, 3, 2, 4]- 接着用
join(',')把数组元素用逗号连接起来,直接得到你想要的字符串
如果你坚持用forEach()实现
你之前尝试的forEach()也能做到,只是需要先收集id到一个临时数组里,再拼接:
const Collection = [{ id: 1 }, { id: 3 }, { id: 2 }, { id: 4 }]; let idList = []; Collection.forEach(item => { idList.push(item.id); // 把每个对象的id推到临时数组 }); const string = idList.join(','); console.log(string); // 同样输出:"1,3,2,4"
不过这种写法比链式调用多了临时变量,代码量也稍大,所以更推荐第一种方法。
关键注意点
千万别直接对原对象数组用join(','),那样会得到"[object Object],[object Object],[object Object],[object Object]",这显然不是你要的结果——因为join会把每个对象转换成默认的字符串表示,所以必须先提取出id值才行!
备注:内容来源于stack exchange,提问作者vhison
相关产品推荐
相关产品推荐

