[英]Add items to JSON object
我正在使用promise來獲取JSON對象:
var x = get();
x.done(function(data) {
for(var i in data) {
}
});
當我執行console.log(data);
時返回的數據
[{…}]
0:
customer: "9028"
data:
active: "1"
customer: "9028"
description: ""
id: "13717"
inherited: "0"
name: "Out of Hours"
priority: "1"
shared: "0"
sound: ""
__proto__: Object
voip_seq: "4"
__proto__: Object
length: 1
__proto__: Array(0)
這樣就可以了,但是在我的for循環中,我想向data
添加2個項目
我嘗試將其添加到我的.done
var obj = { name: "Light" };
data.push(obj);
但這並沒有增加data
我的for循環如下所示:
for(var i in data) {
var m = '<option value="' + data[i].data.id + '"'
if(data[i].data.id == selected_val) {
m += ' selected="selected"';
}
m += '>' + data[i].data.name + '</option>';
$('#' + value_element_id).append(m);
}
如果要在選擇中再添加兩個項目,則只需在循環開始之前將新對象推送到data
數組中即可。 這些對象必須包含與來自Promise的JSON匹配的結構和屬性(“數據”子屬性中的“名稱”和“ id”),以便您的循環代碼可以處理它們。
在最簡單的情況下,它可能像
x.done(function(data) {
data.push({ "data": { "name": "light", "id": 1234 } });
data.push({ "data": { "name": "dark", "id": 5678 } });
for(var i in data) {
var m = '<option value="' + data[i].data.id + '"'
if (data[i].data.id == selected_val) {
m += ' selected="selected"';
}
m += '>' + data[i].data.name + '</option>';
$('#' + value_element_id).append(m);
}
});
在這種情況下,我認為data
不是數組,因此它沒有.push()
方法。 您可以像這樣向對象添加屬性:
for(var i in data) {
var m = '<option value="' + data[i].data.id + '"'
if(data[i].data.id == selected_val) {
m += ' selected="selected"';
}
m += '>' + data[i].data.name + '</option>';
$('#' + value_element_id).append(m);
// here it will add obj to data
var obj = {name: "Light"};
data = {
...data,
obj
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.