在我的应用程序中,我从输入字段中获取搜索词并将其填充到数组中:
guitar
bass
drums
当输入新术语时,我首先要检查它是否已存在于数组中。然后,如果是这样,我想从它的当前位置提取它并将其移动到堆栈的顶部。我相信我已经使用.unshiftObject()处理了最后一部分。我只是想知道是否有一种Ember方式搜索数组。
更新回答我自己的问题
App.recentUsersArray = Em.ArrayController.create({
content: [],
addUser: function(name) {
console.log(this.get('content').contains(name));
this.pushObject(name);
}
});
答案 0 :(得分:2)
通过使用ember,您正在使用jQuery。所以你可以使用jQuery.inArray()
position = jQuery.inArray(name, this.get('content'));
if (position != -1) {
# The element is in the array
this.get('content').slice(position, 1);
}
this.get('content').pushObject(name)
答案 1 :(得分:0)
我会使用removeObject
和unshiftObject
的组合,请参阅http://jsfiddle.net/a3xLb/
App.recentUsersArray = Em.ArrayProxy.create({
addAndMoveUserToFront: function(username) {
this.removeObject(username);
this.unshiftObject(username);
}
});