Object.keys(obj).length 返回字符总和而不是记录总数

Object.keys(obj).length returning sum of characters not total count of records

本文关键字:记录 字符 keys obj 返回 length Object      更新时间:2023-09-26

我正在尝试计算返回的与用户输入的记录关联的记录总数。最后,我需要指定一个 if/else 语句行列式,以确定是否返回多个记录。

示例 1:

用户输入记录 #123456789程序显示与该记录关联的记录 #223456789 和 #333456789将出现一个信息窗口,其中链接已激活以显示关联的记录

示例 2:用户输入记录 #000006789程序显示未关联记录将出现一个信息窗口,其中没有显示关联记录的链接

当前,即使

没有关联任何记录,该链接仍会显示。

以前(当计数不是问题;只有输入的存在时)具有关联记录的记录的设置是:

其中,compacct 是与用户输入记录关联的记录列表

    else if ("<%=compacct(0) %>" != ""){
    var salecontent = "";
    var content = "<b>Account Number</b>: " + "<%=number %> "+
    "<center><br><b>Comparable Sales</b></center>"; 
    content = content + salecontent +  
                            "<br><br>" + "<a class='infolink' href='"javascript:void(0)'" onclick='"javascript:getallcommsale(saleaccts)'">Show all Comparable Sales</a>" +
                            "<br>" + "<img src='"./appFiles/graphics/question3.jpg'" onmouseover='"this.src='./appFiles/graphics/comp_sales.png';'" onmouseout='"this.src='./appFiles/graphics/question3.jpg';'"/>" ;

我现在修改了另一部分中的代码,以便可以输入所有帐户,而不仅仅是具有相关记录的帐户。副作用是,现在 compacct 检索用户输入的记录,而不仅仅是关联的记录。所以我现在需要检查 compacct 的记录计数是否大于 1。我试过:

    var sale = "<%=compacct(0) %>";
    var saleCount = Object.keys(sale).length;
    if (saleCount > 1){

检索的长度是帐户中数字的总和,而不是帐户总数

我也尝试过:

    var sale = "<%=salesstrap(0) %>";
    for (i = 1; i>saleCount.length; i++){

但会出现同样的问题

sale是代码示例中的String。 对字符串调用Object.keys()会将字符串视为字符数组,并为您提供对该数组有效的索引。即:

Object.keys("abc")

将返回数组:

["0", "1", "2"]

此数组的长度将是字符串的长度。

我不确定你如何期望sale是字符串以外的任何东西。