2

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
4

7 に答える 7

4

これを行うだけです。

myArr.status = 'active'

また

myArr["status"] = 'active'

あなたmyArrは.. Object_Array

push関数はArray変数で使用できます。

于 2012-10-27T11:17:29.547 に答える
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 は「配列」自体ではなく、 method を持つ配列でもありませんpush。それが配列の場合、結果は次のようになります。最新のエントリはオブジェクト全体です{'status':'active'}

于 2012-10-27T11:25:02.190 に答える
2

単純に使用します:

myArrValue.status = 'active';

ただし、使用しているのは配列ではなくオブジェクトであることに注意してください。オブジェクトにプロパティを追加する別の方法は次のとおりです。

object[key] = value;
于 2012-10-27T11:19:07.237 に答える
2

これは配列プッシュではなくjsonオブジェクトであり、あなたが行うjsonの配列になります

myObj.NewProp = 123;
于 2012-10-27T11:19:17.713 に答える
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"
});
于 2012-10-27T11:22:59.817 に答える
2

答えはエラーにあります...配列ではなくオブジェクトがあります。オブジェクト表記を使用する

myArr.status='active'
于 2012-10-27T11:18:26.687 に答える
1
myArr["status"] = 'active';

また

myArr.status ='active';
于 2012-10-27T11:21:11.317 に答える