我正在努力地思考如何在结构上实现这样的目标:
var keywordDataProducts =
[
{"keyword" : "keyword1", "list" : [ "DP1", "DP2" ] },
{"keyword" : "keyword2", "list" : [ "DP1" ] }
];
但是,当然,无需对值进行硬编码。例如,我们当前循环浏览所有DP值(DP1,DP2,DP3等),这些值都具有0-M关键字。我正在尝试创建一个反向查询,在这里您可以获取使用特定关键字的所有DP。我的代码完美地使用了上面的结构,但是我只需要数据就可以更动态地填充。
我是否初始化var keywordDataProducts = [];声明中是否包含任何内容,或者定义包含关键字和列表(数组)的结构?还是将其保留为一无所有的数组,并在添加项目时进行定义?
我听说关联数组可以用于这种情况,但是目前我还不太清楚。我也见过使用{}用法的对象,但那里没有推送,我需要一个关键字数组,其中也包含DP数组(列表)。有什么想法吗?
最佳答案
您可能会执行类似的操作,但是并没有清楚地描述输入的外观和所需的输出。
function fn (input) {
var ouput = {};
input.forEach( function (DP) {
for (prop in DP) {
if (DP.hasOwnProperty(prop) {
if (output[prop]) {
output[prop].push(DP);
} else {
output[prop] = [DP];
}
}
}
});
return output;
}
这需要这种输入
[{"alpha":...}, {"beta":..., "delta":...}, {"alpha":..., "gamma":...}]
并返回
{"alpha":[{"alpha":...}, {"alpha":..., "gamma":...}]}, "beta":{"beta":..., "delta":...}, "delta":{"beta":..., "delta":...}, "gamma":{"alpha":..., "gamma":...}}
关于javascript - Javascript键/值配对与阵列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41766354/