web-dev-qa-db-ja.com

既存のオブジェクトに新しい要素を追加します

Pushが配列で行うことのように、既存のオブジェクトに新しい要素を追加する方法を探していました

私はこれを試しましたが、うまくいきませんでした:

var myFunction = {
    Author: 'my name ',
    date: '15-12-2012',
    doSomething: function(){
        alert("helloworld")
    }
};
myFunction.Push({
    bookName:'mybook',
    bookdesc: 'new'
});
console.log(myFunction);
38
Mina Gabriel

これを使って:

myFunction.bookName = 'mybook';
myFunction.bookdesc = 'new';

または、jQueryを使用している場合:

$(myFunction).extend({
    bookName:'mybook',
    bookdesc: 'new'
});

Pushメソッドは、Array.prototypeオブジェクトに属しているため間違っています。

名前付きオブジェクトを作成するには、これを試してください:

var myObj = function(){
    this.property = 'foo';
    this.bar = function(){
    }
}
myObj.prototype.objProp = true;
var newObj = new myObj();
62
Danilo Valente

ただmyFunction.foo = "bar"そして追加されます。 myFunctionは、この場合のオブジェクトの名前です。

13
sachleen

上記のDanilo ValenteによるjQuery構文は機能していません。次のようにする必要があります-

$.extend(myFunction,{
    bookName:'mybook',
    bookdesc: 'new'
});
4
paraS elixiR

Extend を使用して、既存のオブジェクトに新しいオブジェクトを追加できます。

3
John Koerner

jQuery extend method を探しています。これにより、作成済みのJSオブジェクトに他のメンバーを追加できます。

3
jamesmillerio

JSONを配列内に保存し、Pushを使用してJSONデータを配列に挿入できます

これを確認してください https://jsfiddle.net/cx2rk40e/2/

_$(document).ready(function(){

  // using jQuery just to load function but will work without library.
  $( "button" ).on( "click", go );

  // Array of JSON we will append too.
  var jsonTest = [{
    "colour": "blue",
    "link": "http1"
  }]

  // Appends JSON to array with Push. Then displays the data in alert.
  function go() {    
      jsonTest.Push({"colour":"red", "link":"http2"});
      alert(JSON.stringify(jsonTest));    
    }

}); 
_

JSON.stringify(jsonTest)の結果

_[{"colour":"blue","link":"http1"},{"colour":"red","link":"http2"}]
_

この回答は、同様の結果をエミュレートしたいユーザーに役立つかもしれません。

1
Scott