JavaScript中的动态数组

时间:2016-05-12 13:12:53

标签: javascript arrays

我想在javascript中创建动态税种,我使用了以下代码:

Public ReadOnly Property Foo(Optional ByVal MyShort As Short = -1, Optional ByVal MyBool As Boolean = True) As String
     Get
         'logic
         return Bar
     End Get
End Property

现在我想迭代那些ID数组来创建表。但是.length& .size()不能处理ID数组。当我在控制台中看到数组的结果时,它显示如下

enter image description here

无法获得如何将该数组用于$ .each。

我使用以下代码解决了它:

$("table").on("focusout",".tax_amount",function(e){
    var IDs = new Array();
    $('.tax_amount').each(function(){ 
        k = this.id;
        if(typeof IDs[k] === 'undefined') {
            IDs[k] = parseFloat(this.value);            
        }else{
            IDs[k]+= parseFloat(this.value);
        }
    });
    console.log(IDs);       
});

非常感谢Quentin指导正确的方向。

3 个答案:

答案 0 :(得分:8)

size()不起作用,因为Array对象没有size方法。

length不起作用,因为:

  

length属性表示无符号的32位整数,它始终在数值上大于数组中的最高索引。

您尚未在数组中放置任何索引。

您已添加命名属性。

$.each不起作用,因为当给定一个数组时,它会迭代索引,而你又没有给它任何数据。

如果要使用命名属性,请使用对象,而不是数组。数组是为数字索引和有序数据而设计的。

答案 1 :(得分:0)

我希望你的要求是这个

            $("table").on("focusout",".tax_amount",function(e){

                var IDs = new Array();

                $('.tax_amount').each(function(){ 
                    k = this.id;
                    if(typeof k === 'undefined') {
                        IDs.push(parseFloat(this.value));          
                    }else{
                        k += parseFloat(this.value);

                        IDs.push(k);
                    }
                });
                console.log(IDs);       
            });

答案 2 :(得分:0)

使用var arr = new Array();

then arr.push(itemValue);输入任意数量的元素

用于迭代数组和访问值,

arr.forEach(myFunction);
function myFunction(item, index) {
    console.log(item);
    console.log(index);
}