如何在javascript / jquery中将元素追加到现有数组中

时间:2012-10-27 11:15:38

标签: javascript jquery

我在javascript中有一个数组

var myArr = {
    'textId':'123', 
    'type':'animal', 
    'content':'hi dog', 
    'expires':'27/10/2012' 
};

$.each(myArr, function(myArrArrKey, myArrArrValue){
    console.log( myArrArrValue );
});

以上控制台打印以下值

123
app
hi app
27/10/2012

现在我想将一个元素附加到现有数组,我想尝试像下面这样做

myArrValue.push({'status':'active'});

以上推送抛出以下错误

TypeError: Object #<Object> has no method 'push'

请帮助我如何附加到现有的数组元素 我想像

那样打印数组
123
app
hi app
27/10/2012
active

7 个答案:

答案 0 :(得分:4)

就这样做。

myArr.status = 'active'

myArr["status"] = 'active'

您的myArrObject而不是Array ..

push函数可用于Array变量。

答案 1 :(得分:3)

这不是一个数组,它是一个对象!

var myArr = {
    'textId':'123', 
    'type':'animal', 
    'content':'hi dog', 
    'expires':'27/10/2012' 
};

这对jQuery来说没有必要

$.each(myArr, function(myArrArrKey, myArrArrValue){
    console.log( myArrArrValue );
});


更容易

for ( var k in myArr ) {
    console.log( myArr[ k ];
}


将新条目添加到“数组”

myArr[ 'foo' ] = 'bar';  // this is array notation

myArr.foo = 'bar';  // this is object notation


从“阵列”中删除条目

delete myArr[ 'foo' ];

delete myArr.foo;


供参考: myArrValue.push({'status':'active'});不会工作。 myArrValue本身不是“数组”,也不是具有方法push的数组。 如果它是一个数组结果,那么你的最新条目就是整个对象{'status':'active'}

答案 2 :(得分:2)

答案是在错误中...你有一个对象,而不是一个数组。使用对象表示法

myArr.status='active'

答案 3 :(得分:2)

只需使用:

myArrValue.status = 'active';

但请注意,您使用的是对象,而不是数组。向对象添加属性的另一种方法是:

object[key] = value;

答案 4 :(得分:2)

这个json对象不是数组推送的数组 对于你做的json

myObj.NewProp = 123;

答案 5 :(得分:2)

只是为了生病..

function push( obj ) {
    var prop;
    for ( prop in obj ) {
        this[prop] = obj[prop];
    }
    return this;
}

你的对象,记得分配推送方法。

var obj = {
    a: "a",
    b: "b",
    push: push
};

推动:

obj.push({
    c: "c",
    d: "d"
});

答案 6 :(得分:1)

myArr["status"] = 'active';

myArr.status ='active';