繁体   English   中英

麻烦在javascript中制作数组

Trouble Making array in javascript

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我在使用javascript制作数组时遇到了麻烦。 首先,我是这样做的

for(var i=1; i <= rowCount-1; i++)
    {  
        product[i-1] = [{
            'product_id' : $('#product_id' + i).val(),
            'name' : $('#item' + i).val(),
            'model' : $('#model' + i).val(),
            'reward' : $('#reward' +i).val(),
            'subtract' : $('#subtract' + i).val(),
            'minimum' : $('#minimum' + i).val(),
            'shipping' : $('#shipping' + i).val(),
            'tax_class_id' : $('#tax_class_id' + i).val(),
            'weight' : $('#weight' + i).val(),
            'quantity' : $('table.order-table tbody tr td.quantity input[name=\'quantity'+ i +'\']').val(),
            'price' : $('table.order-table tbody tr[id=\''+ i +'\']').find('td.price').html(),
            'total' : $('table.order-table tbody tr td.quantity input[name=\'quantity'+ i +'\']').parent().parent().find('td.total').html()
        }];
    }

在ajax帖子中将其作为参数传递后,我可以看到它将其传递为

product[0][0][minimum]  
product[0][0][model]    326
product[0][0][name] apple mac power
product[0][0][price]    100.0000
product[0][0][product_id]   50
product[0][0][quantity] 5
product[0][0][reward]   0
product[0][0][shipping] 1
product[0][0][subtract] 1
product[0][0][tax_class_i...    0
product[0][0][total]    500
product[0][0][weight]   0.00000000
product[1][0][minimum]  
product[1][0][model]    326
product[1][0][name] apple mac power
product[1][0][price]    100.0000
product[1][0][product_id]   50
product[1][0][quantity] 7
product[1][0][reward]   0
product[1][0][shipping] 1
product[1][0][subtract] 1
product[1][0][tax_class_i...    0
product[1][0][total]    700

但是我想要这样的东西

product[0][name] = "apple mac power"

所以我把我的代码改成了这个

for(var i=1; i <= rowCount-1; i++)
{  
    product = [{
        'product_id' : $('#product_id' + i).val(),
        'name' : $('#item' + i).val(),
        'model' : $('#model' + i).val(),
        'reward' : $('#reward' +i).val(),
        'subtract' : $('#subtract' + i).val(),
        'minimum' : $('#minimum' + i).val(),
        'shipping' : $('#shipping' + i).val(),
        'tax_class_id' : $('#tax_class_id' + i).val(),
        'weight' : $('#weight' + i).val(),
        'quantity' : $('table.order-table tbody tr td.quantity input[name=\'quantity'+ i +'\']').val(),
        'price' : $('table.order-table tbody tr[id=\''+ i +'\']').find('td.price').html(),
        'total' : $('table.order-table tbody tr td.quantity input[name=\'quantity'+ i +'\']').parent().parent().find('td.total').html()
    }];
}

因此,在执行此操作之后,无论我有多少rowCount,它都只显示1行数组

product[0][minimum]  
product[0][model]    326
product[0][name] apple mac power
product[0][price]    100.0000
product[0][product_id]   50
product[0][quantity] 7
product[0][reward]   0
product[0][shipping] 1
product[0][subtract] 1
product[0][tax_class_i...    0
product[0][total]    700

谁能帮我。?

提前致谢..

3 个回复

您正在创建一个数组数组。 取出第二个数组,如下所示:

for(var i=1; i <= rowCount-1; i++)
{  
    product[i-1] = {        // Removed array open
        'product_id' : $('#product_id' + i).val(),
        'name' : $('#item' + i).val(),
        'model' : $('#model' + i).val(),
        'reward' : $('#reward' +i).val(),
        'subtract' : $('#subtract' + i).val(),
        'minimum' : $('#minimum' + i).val(),
        'shipping' : $('#shipping' + i).val(),
        'tax_class_id' : $('#tax_class_id' + i).val(),
        'weight' : $('#weight' + i).val(),
        'quantity' : $('table.order-table tbody tr td.quantity input[name=\'quantity'+ i +'\']').val(),
        'price' : $('table.order-table tbody tr[id=\''+ i +'\']').find('td.price').html(),
        'total' : $('table.order-table tbody tr td.quantity input[name=\'quantity'+ i +'\']').parent().parent().find('td.total').html()
    };       // Removed array close
}

在JavaScript中,[]创建一个数组,因此[{object}]创建一个单元格数组。

另请注意,product [0] [“name”]与product [0] .name相同 - 在JavaScript中,属性也可用于索引语法。 product是您的数组,数组中的每个单元格都是一个对象,它具有包括name在内的属性。

在您的第一个版本中,您将数组分配给数组,因此它显示为2d数组。 在第二个版本中,您始终将产品变量分配给新值,因此它只包含一个产品信息。 因此,您可以通过删除[和]来更新您的第一个版本

for(var i=1; i <= rowCount-1; i++)
{
    product[i-1] = {
        'product_id' : $('#product_id' + i).val(),
        'name' : $('#item' + i).val(),
        'model' : $('#model' + i).val(),
        'reward' : $('#reward' +i).val(),
        'subtract' : $('#subtract' + i).val(),
        'minimum' : $('#minimum' + i).val(),
        'shipping' : $('#shipping' + i).val(),
        'tax_class_id' : $('#tax_class_id' + i).val(),
        'weight' : $('#weight' + i).val(),
        'quantity' : $('table.order-table tbody tr td.quantity input[name=\'quantity'+ i +'\']').val(),
        'price' : $('table.order-table tbody tr[id=\''+ i +'\']').find('td.price').html(),
        'total' : $('table.order-table tbody tr td.quantity input[name=\'quantity'+ i +'\']').parent().parent().find('td.total').html()
    };
}

或者你可以修改你的第二个版本

for(var i=1; i <= rowCount-1; i++)
{  
    product.push({
        'product_id' : $('#product_id' + i).val(),
        'name' : $('#item' + i).val(),
        'model' : $('#model' + i).val(),
        'reward' : $('#reward' +i).val(),
        'subtract' : $('#subtract' + i).val(),
        'minimum' : $('#minimum' + i).val(),
        'shipping' : $('#shipping' + i).val(),
        'tax_class_id' : $('#tax_class_id' + i).val(),
        'weight' : $('#weight' + i).val(),
        'quantity' : $('table.order-table tbody tr td.quantity input[name=\'quantity'+ i +'\']').val(),
        'price' : $('table.order-table tbody tr[id=\''+ i +'\']').find('td.price').html(),
        'total' : $('table.order-table tbody tr td.quantity input[name=\'quantity'+ i +'\']').parent().parent().find('td.total').html()
    });
}

希望它会有所帮助。

product[0]['name'] = "apple mac power"

要么

product[0].name = "apple mac power"

代替

product[0][name] = "apple mac power"

你的第一种方式是好的,但你添加一个带有哈希的数组只删除周围的[]

product[i-1] = {
        'product_id' : $('#product_id' + i).val(),
        'name' : $('#item' + i).val(),
        'model' : $('#model' + i).val(),
        'reward' : $('#reward' +i).val(),
        'subtract' : $('#subtract' + i).val(),
        'minimum' : $('#minimum' + i).val(),
        'shipping' : $('#shipping' + i).val(),
        'tax_class_id' : $('#tax_class_id' + i).val(),
        'weight' : $('#weight' + i).val(),
        'quantity' : $('table.order-table tbody tr td.quantity input[name=\'quantity'+ i +'\']').val(),
        'price' : $('table.order-table tbody tr[id=\''+ i +'\']').find('td.price').html(),
        'total' : $('table.order-table tbody tr td.quantity input[name=\'quantity'+ i +'\']').parent().parent().find('td.total').html()
    };

代替

product[i-1] = [{
        'product_id' : $('#product_id' + i).val(),
        'name' : $('#item' + i).val(),
        'model' : $('#model' + i).val(),
        'reward' : $('#reward' +i).val(),
        'subtract' : $('#subtract' + i).val(),
        'minimum' : $('#minimum' + i).val(),
        'shipping' : $('#shipping' + i).val(),
        'tax_class_id' : $('#tax_class_id' + i).val(),
        'weight' : $('#weight' + i).val(),
        'quantity' : $('table.order-table tbody tr td.quantity input[name=\'quantity'+ i +'\']').val(),
        'price' : $('table.order-table tbody tr[id=\''+ i +'\']').find('td.price').html(),
        'total' : $('table.order-table tbody tr td.quantity input[name=\'quantity'+ i +'\']').parent().parent().find('td.total').html()
    }];
1 Java,制作数组有麻烦

这个问题已经在这里有了答案: 什么是NullPointerException,我该如何解决? 12个答案 我开始学习Java并且遇到了小问题。 我有Point和abc类: 但是类abc中的初始化不起作用。 当我尝试写第一个数字时,它给出了: 我 ...

2016-03-29 10:56:20 1 50   java
2 如何在javascript类中制作数组?

最近我正在学习制作javascript类,我看到其他人像这样制作类 但是,它可能使变量a数组? 并像这样输出一个变量item.a[1] ?我试过了 var a=new Array('1000','2000','3000')但是错误,我需要正确的语法。 ...

3 在javascript中为点击功能制作数组

在我的网络上,我有许多用于管理点击功能的按钮。 每个按钮单击都有一个类,用于初始化每个按钮。 这里的代码 对于我当前的网站,我一个接一个地直到$(".data160").click(function() 。它将是长代码而无效。我的问题,如何制作一个简单的代码? ...

4 Javascript-从列表中制作数组

我正在尝试做一些简单的事情,但是找不到我需要的帮助:我有一个列表,我想从中创建一个数组; 基本上,我的html的主体是: 我的JavaScript现在是: 我有财产,不是孩子。 我认为我必须询问我的innerHTML 元素,但找不到合适的方法来做.. 我认为我的 ...

5 麻烦从字符串制作数组

我想为该下拉列表创建一个数组,因此您可以帮助创建一个数组吗? 串: 尝试: ...

2018-12-08 10:05:53 1 25   php
8 使用PHP数组制作数组Javascript

我有一个ajax脚本,它向我返回一个关联数组列表,如下所示: 的HTML 我当前的javascript,其中formation是ID,method是我的约会 我如何获得创建表头的键,然后仅使用值来填充它? 就目前而言,我是通过简单的PHP var_dump将数据传输 ...

9 在Jquery中制作数组

我正在寻找jquery的一些紧急帮助,我有一些输入框,我想要检索它们作为一个数组的值,问题是所有的输入框将动态创建一个添加更多的按钮,所以我不知道如何很多人都会这样,我创建动态框的代码就在这里。 }); 现在让我们说一个人点击addmore 3次,现在我将有3个输入框#fname_ ...

10 在cpp中制作数组

我正在尝试在我的项目中制作一个新阵列 代码是: 根据要求,我需要使用上面的“ makeArray”方法来制作数组。 当我运行代码时,输​​出是不为零的垃圾值..... 任何帮助将不胜感激 谢谢 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM