【发布时间】:2021-11-24 23:39:33
【问题描述】:
假设我的代码中有 2 个 javascript/jQuery 数组。
一个看起来像这样的二维数组(控制台输出):
0: {title: 'Freemium', modules: 'Ordering'}
1: {title: 'Standaard', modules: 'Ordering,Invoicing,Cash system'}
一个是标准的一维数组,看起来像这样(控制台输出):
['Ordering', 'Invoicing', 'Cash system']
我想比较两个数组以检查第二个数组是否与第一个数组匹配。如果是,则需要返回第一个数组的标题列。
具体来说:用户可以选择多个模块,当所有选定的模块与配置的定价计划之一匹配时,返回定价计划的名称。
我该怎么办?我的代码中已经准备好两个数组,我只需要找到一种方法来比较它们并返回第一个数组的标题列。我找到了一些比较两个数组的解决方案,但从来没有一个二维数组和一维数组。
更新:
所以我的问题可能措辞不当或技术上不正确。
页面上添加不同的计划如下:
<div id="packages">
<div class="package" data-title="Freemium" data-modules="Ordering"></div>
<div class="package" data-title="Standaard" data-modules="Ordering,Invoicing,Cash system"></div>
</div>
我正在使用以下 JS 代码将包“添加”到我的代码中:
$("#packages .package").each(function(index) {
var package_title = $(this).data('title');
var package_modules = $(this).data('modules');
packages_array.push({"title": package_title, "modules": package_modules});
});
每个由用户选择的模块都被添加到这样的数组中:
$(".modules .module.active").each(function() {
modules_array.push($(this).data('title'));
});
(数组packages_array 和modules_array 在我的代码顶部声明)
这就是我现在所拥有的,如果有人能指出我如何改进我的代码以及如何比较两个数组的正确方向..
【问题讨论】:
-
这与jQuery无关。如果你真的想比较 jQuery 对象,这将是一个完全不同的问题和答案。
-
到目前为止,您尝试了哪些方法来自行解决此问题?为什么
modules是字符串而不是数组? -
为什么是 2D?您的问题中没有二维数组。
-
您好安德烈亚斯,感谢您的意见。一般来说,我对 jQuery 和 javascript 没有那么丰富的经验,所以如果我的问题措辞不正确,我深表歉意。我刚刚更新了我的问题,以提供有关我其余代码的更多上下文。