如何在JavaScript的Array.map()中添加冒号等特殊字符
解决方案
你当前的map方法返回的是嵌套数组,要实现目标格式,分两种场景处理:
场景1:生成可操作的对象结构(推荐)
如果需要得到能直接在代码中使用的对象,利用计算属性名在map中生成键值对数组,再通过Object.fromEntries合并成完整对象:
const data = [{ "user_id": "10", "dates": ["11/21/2022", "11/25/2022"] }] const output = Object.fromEntries(data.map(({ user_id, dates }) => [user_id, dates])); console.log(output); // { '10': ["11/21/2022", "11/25/2022"] }
如果想先得到单个键值对对象的数组,再合并:
const data = [{ "user_id": "10", "dates": ["11/21/2022", "11/25/2022"] }] const mapped = data.map(({ user_id, dates }) => ({ [user_id]: dates })); const output = Object.assign({}, ...mapped); console.log(output); // { '10': ["11/21/2022", "11/25/2022"] }
场景2:生成匹配示例的字符串格式
如果需要得到'10': ["11/21/2022", "11/25/2022"]这样的文本字符串,直接在map中拼接内容即可:
const data = [{ "user_id": "10", "dates": ["11/21/2022", "11/25/2022"] }] const output = data.map(({ user_id, dates }) => `'${user_id}': ${JSON.stringify(dates)}`); console.log(output[0]); // '10': ["11/21/2022", "11/25/2022"]
内容的提问来源于stack exchange,提问作者Sharmae Reyes
相关产品推荐
相关产品推荐

