javascript - 如何在 JavaScript 中基于对象值实现组合?
问题描述
我正在尝试编写一个函数来给定如下数据数组的排列:
var selectedData={
selectedAccount:"a1,a2",
selectedYear:"2019,2018",
selectedProduct:"p1,p2",
}
我想要这样的结果:
[
{
selectedAccount: "a1",
selectedYear: "2018",
selectedProduct: "p1",
},
{
selectedAccount: "a1",
selectedYear: "2018",
selectedProduct: "p2",
},
{
selectedAccount: "a1",
selectedYear: "2019",
selectedProduct: "p1",
},
{
selectedAccount: "a1",
selectedYear: "2019",
selectedProduct: "p2",
},
{
selectedAccount: "a2",
selectedYear: "2018",
selectedProduct: "p1",
},
{
selectedAccount: "a2",
selectedYear: "2018",
selectedProduct: "p2",
},
{
selectedAccount: "a2",
selectedYear: "2019",
selectedProduct: "p1",
},
{
selectedAccount: "a2",
selectedYear: "2019",
selectedProduct: "p2",
},
]
我一直在为某种类型的递归函数苦苦挣扎,没有运气!谁能给出实现上述结果的想法
提前致谢
解决方案
只需创建嵌套for
循环,如下所示:
let selectedData = {
selectedAccount: "a1,a2",
selectedYear: "2019,2018",
selectedProduct: "p1,p2",
};
let result = [];
for (let selectedAccount of selectedData.selectedAccount.split(",")) {
for (let selectedYear of selectedData.selectedYear.split(",")) {
for (let selectedProduct of selectedData.selectedProduct.split(",")) {
result.push({ selectedAccount, selectedYear, selectedProduct });
}
}
}
console.log(result);
推荐阅读
- python - mbox.txt 的简单文件输出
- android - AndroidQ DownloadManager.Request.setDestinationUri
- reactjs - React 前端无法 POST 到 Flask 后端
- python - 如何使用python打印名称
- react-native - 升级 sdk 33.0 后,expo react-native 移动应用程序不起作用?
- jenkins - Jenkins EC2 插件在构建作业时立即启动和停止实例
- javascript - 应用程序脚本。如何从所有记录中收集所有数据?火力基地
- hyperledger-fabric - Hyperledger Fabric 中的 orderer 和网络组织之间是否存在任何关系?
- mysql - MySQL/MariaDB:汇总多个不同的工作时间倒数以确定办公室何时开放?
- google-chrome - 我在用户页面中使用 JSP Servlets 保存了用户名和密码。但是在登录页面中它不检查凭据