Je cherchais un moyen d'ajouter de nouveaux éléments à un objet existant, comme ce que Push fait avec des tableaux
J'ai essayé cela et cela n'a pas fonctionné:
var myFunction = {
Author: 'my name ',
date: '15-12-2012',
doSomething: function(){
alert("helloworld")
}
};
myFunction.Push({
bookName:'mybook',
bookdesc: 'new'
});
console.log(myFunction);
Utilisez ceci:
myFunction.bookName = 'mybook';
myFunction.bookdesc = 'new';
Ou, si vous utilisez jQuery:
$(myFunction).extend({
bookName:'mybook',
bookdesc: 'new'
});
La méthode Push
est incorrecte car elle appartient à l'objet Array.prototype
.
Pour créer un objet nommé, essayez ceci:
var myObj = function(){
this.property = 'foo';
this.bar = function(){
}
}
myObj.prototype.objProp = true;
var newObj = new myObj();
Il suffit de faire myFunction.foo = "bar"
et il va l'ajouter. myFunction
est le nom de l'objet dans ce cas.
la syntaxe jQuery mentionnée ci-dessus par Danilo Valente ne fonctionne pas. Ce devrait être comme suit-
$.extend(myFunction,{
bookName:'mybook',
bookdesc: 'new'
});
Vous recherchez la méthode jQuery extend . Cela vous permettra d'ajouter d'autres membres à votre objet JS déjà créé.
Vous pouvez utiliser Etendre pour ajouter de nouveaux objets à un objet existant.
Vous pouvez stocker votre code JSON dans un tableau, puis insérer les données JSON dans le tableau avec 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));
}
});
Résultat de JSON.stringify(jsonTest)
[{"colour":"blue","link":"http1"},{"colour":"red","link":"http2"}]
Cette réponse peut être utile aux utilisateurs qui souhaitent imiter un résultat similaire.