【发布时间】:2018-07-03 16:14:41
【问题描述】:
我正在尝试将 javascript 对象全部添加到一个变量中,但不在同一个对象中。这就是我的意思:
object1 = {id: 1, name: Dean};
object2 = {id: 2, name: Sam};
object3 = {id: 3, name: Castiel};
我需要他们:
object1 = {id: 1, name: Dean}, {id: 2, name: Sam}, {id: 3, name: Castiel};
我目前正在从 ajax 调用中检索所有这些信息,需要循环访问它并将其返回到一个有效的 javascript 对象中,并将所有这些对象一次传递给一个变量:
var hierarchy;
for (i = 0; i < response['tree']['id'].length; i++) {
hierarchy = $.extend(true, hierarchy, {
id: response['tree']['id'][i],
parentId: response['tree']['parentId'][i],
Name: response['tree']['name'][i]
});
}
var orgchart = new getOrgChart(document.getElementById("cast"), {
dataSource: [hierarchy]
});
主要目标:dataSource 属性需要以如下所示的值结束:
var orgchart = new getOrgChart(document.getElementById("cast"), {
dataSource: [{id: 1, name: Dean}, {id: 2, name: Sam}, {id: 3, name: Castiel}]
});
编辑:解决方案,根据提供的答案,我修改了代码,现在它可以正常工作,我误解了控制台日志输出的内容与允许的语法。
var hierarchy = [];
for (i = 1;i < response['tree']['id'].length; i++) {
groupData = {
id: response['tree']['id'][i],
parentId: response['tree']['parentId'][i],
Name: response['tree']['name'][i]
};
hierarchy.push(groupData);
}
var orgchart = new getOrgChart(document.getElementById("cast"), {
dataSource: [{
id: response['tree']['id'][0],
parentId: response['tree']['parentId'][0],
Name: response['tree']['name'][0]
}]
});
orgchart.loadFromJSON(hierarchy);
【问题讨论】:
-
object1 = {id: 1, name: Dean}, {id: 2, name: Sam}, {id: 3, name: Castiel};这是无效的JS。你可以objectArray = [{id: 1, name: Dean}, {id: 2, name: Sam}, {id: 3, name: Castiel}];。请注意,它现在是 Objects 的 Array []。可以在数组中使用push()。假设来自 AJAX 的数据是类似于response.data.forEach((elem) => ObjectArray.push(elem))的伪数据。 -
使用 Object.Assing developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/…
-
这是不可能的。您需要使用
Array(对象类型)或通用Object。 JavaScript 变量不能包含多个值。 -
@P.Waksman 英文链接:developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
-
@Tyler 谢谢,没注意到不是英文的
标签: javascript jquery object orgchart