gpt4 book ai didi

javascript - 为什么以下函数输入不适用于给定的 AngularJS 循环?

转载 作者:行者123 更新时间:2023-12-03 06:35:43 25 4
gpt4 key购买 nike

有没有一种方法可以使用函数的输入参数获取对象内部的另一个对象。我想为名称设置两个不同的 $scope 变量,一个用于区域管理员,另一个用于构建管理员。在此示例中,我在每个对象内部循环以获取名称。我需要执行此过程两次,因此我对重复多次不感兴趣,因此我创建了一个函数。问题是,每当我使用“value.functionInputValue”时,我都会收到一条错误,指出它无法从未定义中读取。有人可以帮助我知道我哪里出了问题吗?

JavaScript:

$scope.zones = [{ 
zoneManagers: {
zone1: {
name: 'Name',
phone: 1111111
},
zone2: {
name: 'Name',
phone: 1111111
},
zone3: {
name: 'Name',
phone: 1111111
},
constructionManagers: {
zone1: {
name: 'Name',
phone: 1111111
},
zone2: {
name: 'Name',
phone: 1111111
},
zone3: {
name: 'Name',
phone: 1111111
}
}
}];


function namesFilter(zoneType)
{
var allZoneManagerNames = [];
angular.forEach($scope.zones, function(value, key)
{
var zoneTypeArray = Object.keys(value);
if ( zoneTypeArray.indexOf(zoneType) != 1 )
{
angular.forEach(value.zoneType, function(value2, key2)
{
if (allZoneManagerNames.indexOf(value2.name) == -1)
{
allZoneManagerNames.push(value2.name);
}
});
}
});
return allZoneManagerNames;
}

$scope.allZoneManagerNames = namesFilter("zoneManagers");

最佳答案

我认为它应该是 value[zoneType] 而不是 value.zoneType 因为 zoneTypeString作为参数传递给函数。

另外,正如 @mhodges 提到的,它应该是 zoneTypeArray.indexOf(zoneType) != -1 而不是 zoneTypeArray.indexOf(zoneType) != 1 但是,在这种情况下,您可以简单地进行这样的检查:

if(value[zoneType]){
...
}

关于javascript - 为什么以下函数输入不适用于给定的 AngularJS 循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38229076/

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