我有一个像这样的动态对象
var object = [
"70669",
"70669|9436",
"70669|8353",
"70669|8914",
"70669|9522",
"70669|8422",
"70669|9639"
]
我的预期输出是这样的
[{
stdSizeCode: [9436, 8353, 8914, 9522, 8422, 9639]
productHierSk: 70669
}]
我试图调查这个链接,但没有按照预期的方式工作。有人可以建议
你可以用一个对象分组并得到值作为结果。
const
data = ["70669", "70669|9436", "70669|8353", "70669|8914", "70669|9522", "70669|8422", "70669|9639"],
result = Object.values(data.reduce((r, s) => {
const [productHierSk, code] = s.split('|').map(Number);
r[productHierSk] ??= { stdSizeCode: [], productHierSk };
if (value !== undefined) r[productHierSk].stdSizeCode.push(code);
return r;
}, []));
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
如果我正确理解你的问题
工作正常:
var object = [
"70669",
"70669|9436",
"70669|8353",
"70669|8914",
"70669|9522",
"70669|8422",
"70669|9639",
];
var result = [{ stdSizeCode: [], productHierSk: null }];
object.map((item) => {
if (item.includes("|")) {
result[0].stdSizeCode.push(parseInt(item.split("|")[1]));
} else {
result[0].productHierSk = parseInt(item);
}
});
console.log("result : ", result);