gpt4 book ai didi

javascript - 使用 JS 变量名命名附加变量

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:14:47 25 4
gpt4 key购买 nike

我正在使用节点为内部数据库工具获取泳道列表(作为 JSON 对象数组)。

格式:

swimlanes = [{"swimlane" : "1"},{"swimlane" : "2"}, ...]

然后我检索所有 MSSQL Server 实例的列表(以相同的格式)。

instances = [{"instance" : "host\instance", "swimlane" : "1"}, ...]

我想做的是创建一个名为 slInstances 的 JSON 对象,它将成为 swimlane 实例数组的集合。

slInstances = { "1" : ["host\instance", "host\instance"], "2" : ["host\instance", "host\instance"]

我试过:

 function getInstancesSuccess(response){

$scope.instances = response.data;

$scope.slInstances = {};

$scope.swimlanes.forEach(function(){
var sl = this.swimlane;
$scope.slInstances[sl] = $scope.instances.filter(function(el){
return el.swimlane == sl;
})
});
}

(仅在范围内保留“实例”,因为我将把它用于其他用途)但这根本不起作用。我希望能够让 sl = 类似“1”的东西在每个泳道中循环。并因此为 slInstances["1"] = , slInstances["2"] = .... 分配一个值。

所以在我的 Angular 模板中,我可以按照以下方式做一些事情:

<ul>
<li ng-repeat="sl in swimlanes">{{sl['swimlane']}}
<ul>
<li ng-repeat="i in slInstances">{{ i[sl['swimlane']].instance}}

我不是简单地制作递增数组,而是使用这样的对象的唯一原因是因为我们的泳道不是连续顺序的(0、1、22、23、30、31 等)所以我希望它具有联想性。

我是不是以完全错误的方式解决了这个问题?

谢谢!

编辑:

创建了一个 plunker 来展示:

http://plnkr.co/edit/Y2PjAxzsvm201EL7mQC4

最佳答案

如果我明白你想要完成什么:

var swimlanes = [{"swimlane" : "1"},{"swimlane" : "2"},{"swimlane" : "3"}];
var instances = [{"instance" : "host1/instance1", "swimlane" : "1"}, {"instance" : "host2/instance2", "swimlane" : "2"}];

var slInstances = {};

for (var i = 0; i < swimlanes.length; i++) {
slInstances[swimlanes[i].swimlane] = [];
}


for (var i = 0; i < instances.length; i++) {
slInstances[instances[i].swimlane].push(instances[i].instance);
}

// returns {"1":["host1/instance1"],"2":["host2/instance2"],"3":[]}

如果是这种情况,请告诉我,可以使用 underscore.js 使其更清晰。

关于javascript - 使用 JS 变量名命名附加变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34447138/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com