繁体   English   中英

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

[英]How to append an element into a existing array in 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

就这样做吧。

myArr.status = 'active'

要么

myArr["status"] = 'active'

你的myArr是一个Object而不是一个Array ..

push函数可用于Array变量。

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

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'}

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

myArr.status='active'

只需使用:

myArrValue.status = 'active';

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

object[key] = value;

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

myObj.NewProp = 123;

只为了它的踢..

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"
});
myArr["status"] = 'active';

要么

myArr.status ='active';

暂无
暂无

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

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