实际上,这个问题与 typeahead bootstrap 有关,因为我需要使用自动完成定义一个值数组以在输入文本中显示。
无论如何,目标只是定义一个读取对象数组并返回字符串数组的函数。这是我的代码(1)。
(1) 的目标是:1) 从对象数组中获取字符串数组。2)过滤这个数组拒绝一些元素。
它不起作用,因为我要拒绝的元素仍然存在于数组中。事实上,在自动完成中我得到了 false 值,实际上它破坏了代码,因为预先输入不期望 false 。
应该如何修复代码并改进它?
(1)
element.typeahead({
source: function ( {
var users = _.map(app.userCollection.models, function (model) {
if (model.get('id') === app.currentUser.id) {
return false;
}
return model.get('first_name') + ' ' + model.get('last_name');
});
console.log(users); // [false, 'some name'];
_.reject(users, function(name) {
return name === false;
});
console.log(users); // [false, 'some name'];
// why does the false value persist?
return users;
}
});