Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在";中遍历对象内部的数组;ng选项“;属性_Javascript_Arrays_Angularjs - Fatal编程技术网

Javascript 如何在";中遍历对象内部的数组;ng选项“;属性

Javascript 如何在";中遍历对象内部的数组;ng选项“;属性,javascript,arrays,angularjs,Javascript,Arrays,Angularjs,如果我有两个下拉列表。第二个依赖于第一个 第一个下拉列表是姓氏 如果你能将你的一天重组为一个对象,以名称为键,以名称列表为值,你就可以轻松地完成这项工作 重组: [ ... { "surname":"Williams" "name":['Holly','James','Robert','Kim'] }, { "surname":"Jones" "name":['Holl

如果我有两个下拉列表。第二个依赖于第一个

第一个下拉列表是姓氏


如果你能将你的一天重组为一个对象,以名称为键,以名称列表为值,你就可以轻松地完成这项工作

重组:

   [
      ...
      {
         "surname":"Williams"
         "name":['Holly','James','Robert','Kim']
      },
      {
         "surname":"Jones"
         "name":['Holly','Joe','Jon','Harry']
      }
      ...
   ]
$scope.data = persons.reduce(function(p, c) {
    if (!p.hasOwnProperty(c.surname)) {
        p[c.surname] = p.name;
    }

    return p;
}, {});
使用新结构:

   [
      ...
      {
         "surname":"Williams"
         "name":['Holly','James','Robert','Kim']
      },
      {
         "surname":"Jones"
         "name":['Holly','Joe','Jon','Harry']
      }
      ...
   ]
$scope.data = persons.reduce(function(p, c) {
    if (!p.hasOwnProperty(c.surname)) {
        p[c.surname] = p.name;
    }

    return p;
}, {});

提供了可能的解决方案:在
姓氏选择上执行
ng change=“populate()”

<select ng-model="selectedSurname" ng-options="surname as surname for (surname, names) in data"></select>
<select ng-model="selectedName" ng-options="name as name for name in data[selectedSurname]"></select>