Angular UI Typeahead - 使用键/值对数组

时间:2017-01-24 15:41:24

标签: javascript angularjs angular-ui-bootstrap angular-ui-typeahead

我似乎无法使用键/值对进行预先处理。由于每个键都不同,我只想将值显示为typeahead值。

以下是我尝试使用的数组示例:

var firstInit = '';
var lastInit = '';

angular.forEach(self.contacts, function(value, key){
  if (key.first_name)
    firstInit = key.first_name.charAt(0);
  if (key.last_name)
    lastInit = key.last_name.charAt(0);
  this.push(firstInit + ':' + lastInit);
});

那么,我应该如何遍历每个对象并且只抓取每个对象的值(即" partner1")以显示在预先输入下拉列表中?

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)



var data = [
 {"1":"partner1"},
 {"2":"partner2"},
 {"3":"partner3"},
 {"4":"partner4"}
];
for (var i = 0; i < data.length; i++) {
  data[i] = data[i][Object.keys(data[i])[0]];
}
console.log(data)
&#13;
&#13;
&#13;

要点:

对于数组中的每个对象,获取第一个键。使用此键访问该值并使用此值覆盖该对象。

答案 1 :(得分:0)

let your_objects = [
   {"1":"partner1"},
   {"2":"partner2"},
   {"3":"partner3"},
   {"4":"partner4"}
]
// Use a map to get all the values out into a list
// and then use Array.flatten
let nested_keys = Array.flatten(your_objects.map((obj) => Object.values(obj)));