动态数组对象分组并生成指定结构对象的实现方案咨询
解决方案
你可以通过遍历数组、分割字符串并分类收集数据来实现需求,代码示例如下:
var object = [ "70669", "70669|9436", "70669|8353", "70669|8914", "70669|9522", "70669|8422", "70669|9639" ]; // 初始化符合目标结构的结果容器 const result = [{ stdSizeCode: [], productHierSk: null }]; // 遍历处理每个元素 object.forEach(item => { const parts = item.split('|'); // 处理单独的层级编码 if (parts.length === 1) { result[0].productHierSk = Number(parts[0]); } else { // 提取尺寸码并转为数字存入数组 result[0].stdSizeCode.push(Number(parts[1])); } }); console.log(result);
补充说明:
如果输入数组中可能存在多个单独的层级编码(比如不止一个"70669"),可以添加判断避免重复赋值覆盖:
object.forEach(item => { const parts = item.split('|'); if (parts.length === 1) { // 仅当层级编码未设置时赋值 if (result[0].productHierSk === null) { result[0].productHierSk = Number(parts[0]); } } else { result[0].stdSizeCode.push(Number(parts[1])); } });
内容的提问来源于stack exchange,提问作者SivaShanker
相关产品推荐
相关产品推荐

