I was looking for a way to add new elements to an an existing object like what push does with arrays
I have tried this and it didn't work :
var myFunction = {
Author: 'my name ',
date: '15-12-2012',
doSomething: function(){
alert("helloworld")
}
};
myFunction.push({
bookName:'mybook',
bookdesc: 'new'
});
console.log(myFunction);
This question is related to
javascript
jquery
object
You are looking for the jQuery extend method. This will allow you to add other members to your already created JS object.
You could store your JSON inside of an array and then insert the JSON data into the array with push
Check this out 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));
}
});
Result of JSON.stringify(jsonTest)
[{"colour":"blue","link":"http1"},{"colour":"red","link":"http2"}]
This answer maybe useful to users who wish to emulate a similar result.
Just do myFunction.foo = "bar"
and it will add it. myFunction
is the name of the object in this case.
jQuery syntax mentioned above by Danilo Valente is not working. It should be as following-
$.extend(myFunction,{
bookName:'mybook',
bookdesc: 'new'
});
You can use Extend to add new objects to an existing one.
Source: Stackoverflow.com