如何将数组中models的字符串元素转换为{value, label}结构对象?
把数组中models的字符串元素转换为{value, label}格式对象
你可以通过数组的map()方法遍历原数组,对每个对象的models数组再次使用map(),将每个字符串转换为包含value和label字段的对象,同时保留原有的brand字段。这种方式不会修改原数组,返回一个新的处理后的数组。
完整实现代码
// 原数组 const hello = [ { brand: "Acura", models: [ "2.2CL", "2.3CL", "3.0CL", "3.2CL", "ILX", "Integra", "Legend", "MDX", "NSX", "RDX", "3.5 RL", "RL", "RSX", "SLX", "2.5TL", "3.2TL", "TL", "TSX", "Vigor", "ZDX" ] }, { brand: "Alfa Romeo", models: [ "164", "8C Competizione", "GTV-6", "Milano", "Spider" ] }, { brand: "AMC", models: [ "Alliance", "Concord", "Eagle", "Encore", "Spirit" ] } ]; // 转换处理 const transformedHello = hello.map(item => ({ ...item, models: item.models.map(model => ({ value: model, label: model })) })); console.log(transformedHello);
代码说明
- 外层
hello.map():遍历原数组中的每个品牌对象,返回一个新的对象。 ...item:使用扩展运算符保留原对象的所有字段(这里主要是brand)。- 内层
item.models.map():遍历当前对象的models数组,将每个字符串转换为{value: 字符串, label: 字符串}的格式。
如果需要直接修改原数组(不推荐,会改变原始数据),可以使用forEach():
hello.forEach(item => { item.models = item.models.map(model => ({ value: model, label: model })); });
内容的提问来源于stack exchange,提问作者amghare
相关产品推荐
相关产品推荐

