gpt4 book ai didi

javascript - 计算 2 个数组中出现了多少个相同的元素

转载 作者:行者123 更新时间:2023-11-30 09:06:11 24 4
gpt4 key购买 nike

我有一个表单,作为该表单的结果,我有两个数组 - 一个用于 personA 的详细信息,一个用于 personB 的详细信息。表格的一部分是一堆日期复选框 - 日期是固定价格,但在同一日期预订两个是折扣价。

我想做的是将 personA 的数组与 personB 的数组进行比较,对于任何重复的问题,都会降低比率。

费率将计算为两个变量 - 总全价日期(以英镑为单位)和总 Markdown 日期(以英镑为单位)。

到目前为止,这是我的代码(这发生在复选框 onclick 上):

function processDates(){
var contentsA, valsA = [], dates_A = document.forms['registerForm']['personADates[]'];
for(var iA=0,elmA;elmA = dates_A[iA];iA++) {
if(elmA.checked) {
valsA.push(elmA.value);
}
}
contentsA = valsA.join(', ');

var contentsB, valsB = [], dates_B = document.forms['registerForm']['personBDates[]'];
for(var iB=0,elmB;elmB = dates_B[iB];iB++) {
if(elmB.checked) {
valsB.push(elmB.value);
}
}
contentsB = valsB.join(', ');
}

最佳答案

  • 用我自己的http://phrogz.net/JS/ArraySetMath.js你可以这样做:

    // If the original order of the elements is not important
    var common = array1.intersect( array2 );

    // If the original order of the elements is important
    var common = array1.unsortedIntersect( array2 );
  • 与较大的 JS.Set你可以这样做:

    // If the original order of the elements is not important
    var common = (new JS.SortedSet(array1)).intersect(new JS.SortedSet(array2));

    // If the original order of the elements is important
    var common = (new JS.Set(array1)).intersect(new JS.Set(array2));

我不清楚数组中的实际值是什么;这些日期是由用户以纯文本形式输入的吗?如果是这样,您需要确保它们已标准化,以便它们具有可比性并保证匹配。

如果这些不仅仅是简单的可比较对象(例如,您正在创建数组复杂对象而不是 String 或 Date 实例),那么我的库允许您提供一个比较函数,以便您可以确定哪些是相等的。有关这方面的更多详细信息,请参阅图书馆。

关于javascript - 计算 2 个数组中出现了多少个相同的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4817561/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com