Добавить новый элемент в существующий объект
Я искал способ добавить новые элементы к существующему объекту, например, что делает push с массивами
Я пробовал это, и он не работал:
var myFunction = {
Author: 'my name ',
date: '15-12-2012',
doSomething: function(){
alert("helloworld")
}
};
myFunction.push({
bookName:'mybook',
bookdesc: 'new'
});
console.log(myFunction);
Ответы
Ответ 1
Используйте это:
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();
Ответ 2
Просто сделайте myFunction.foo = "bar"
, и он добавит его. myFunction
- это имя объекта в этом случае.
Ответ 3
Синтаксис jQuery, упомянутый выше Данило Валенте, не работает. Он должен быть следующим:
$.extend(myFunction,{
bookName:'mybook',
bookdesc: 'new'
});
Ответ 4
Вы ищете метод расширения jQuery. Это позволит вам добавить других членов к уже созданному объекту JS.
Ответ 5
Вы можете использовать Extend, чтобы добавить новые объекты в существующую.
Ответ 6
Вы можете сохранить свой JSON внутри массива, а затем вставить данные JSON в массив push
Проверьте это 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"}]
Этот ответ может быть полезен для пользователей, которые хотят подражать подобному результату.