代码之家  ›  专栏  ›  技术社区  ›  tree em

在js或jquery中将对象推送到数组?

  •  1
  • tree em  · 技术社区  · 15 年前

    在我的 Script.js 我正在尝试将对象推送到array=>对象数组。

    $("#save_filter").click(function(){
        var filter_saved = new Object();//Create new object to store the filter have been saved.
        var customer_type_selected = $('#id_customer_type :selected').text();
        var list_tag_selected = $("#tag_checked").val();
        var filter_name = $("#put_filter_name").val();
    
        // Save filter name to the object={tag:[2,3,], customer_type:'TDO', more...}
        filter_saved = {
            customer_type: customer_type_selected,
            tag: list_tag_selected
        };
        var array_obj_filter_saved = []
    
        //I am trying...
        array_obj_filter_saved.push(filter_saved);//push every objects to array
        alert(array_obj_filter_saved.length);
    });
    

    我的阵法就像这个联合阵法

    array_obj_filter_saved = {"time1":filter_saved1,"time2":filter_saved2}
    

    有人知道如何将每个对象推送到数组或关联数组中吗?

    ***filter_根据表单中的选项(customer_type_selected(choicefield)、list_tag_selected(checkbox))保存一个每次创建的对象

    3 回复  |  直到 15 年前
        1
  •  3
  •   Marius    15 年前

    下面的行不是数组,而是一个对象。数组中只能有整数索引,并且 [] 定义数组(就像您在示例中所做的那样)。

    array_obj_filter_saved = {"time1":filter_saved1,"time2":filter_saved2}
    

    不能将对象推送到对象上,而是使用特定索引设置它们:

    array_obj_filter_saved["keyName"] = "value";
    
        2
  •  3
  •   Tim Down    15 年前

    我不太清楚。是 array_obj_filter_saved 是不是数组?

    如果要附加 Array 对另一个 数组 ,您可以使用 concat 方法:

    var a1 = ["a", "b", "c"], a2 = ["d", "e"];
    var a3 = a1.concat(a2); // a3 is ["a", "b", "c", "d", "e"]
    
        3
  •  1
  •   eflorico    15 年前

    就像这样:

    var x= { a: 1};
    x.b = 2;