从另一个函数内部调用函数时,函数始终返回0

时间:2018-12-18 10:27:08

标签: javascript jquery

我具有将此功能与javaScript中的列表进行比较

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="search" name="search" id="search" class="autocomplete" autocomplete="off" placeholder="Search..." />

它单独工作就很好,但是当在另一个函数中调用它时,它仅返回零。我不知道为什么这是完整的代码

function listCompare(list1, list2) {
    let result = 0;
    let final = (list1.length + list2.length) / 2;
    for (let x of list1) {
        for (let y of list2) {
            if (x == y) {
                result += 1;
            }
        }
    }
    return result / final * 100;
};

注意:我有两个列表,其中一个是作者对ob函数的接受时间,函数返回给我的两个列表与五个列表之间的匹配度

function listCompare(list1, list2) {
    let result = 0;
    let final = (list1.length + list2.length) / 2;
    for (let x of list1) {
        for (let y of list2) {
            if (x == y) {
                result += 1;
            }
        }
    }
    return result / final * 100;
};

$('#id_password').change(function() {
    // console.log('changed')
    ls1 = time
    ls2 = ob
    var result = listCompare(ls1, ls2)
    console.log(result)
    if (result >= 70) {
    $(':button[type="submit"]').prop('disabled', false);
     }


});

2 个答案:

答案 0 :(得分:0)

谢谢大家,问题是var返回为字符串之一,所以我不得不将其转换为列表,您可以在这里找到答案[在此处输入链接描述] [1]

[] [1]:Convert string with commas to array

答案 1 :(得分:0)

我想看看timeob变量在运行时包含多少个元素。 alert(time.length+','+ob.length);。我看不到您在$('#id_password').change函数中为这些变量分配了任何值