尝试在给定数组中查找字符串/值并将其替换为新值; 更像是切换排序值并将其推送到数组;
值需要检查点击;
if(_.contains($scope.sortList, sortText)){
console.log("exist");
} else{
console.log("doesnt exist");
}
答案 0 :(得分:1)
嘿兄弟你会搜索以前的问题,请查看下面的小提琴它对数组字符串/值进行排序现在需要使用下划线来查找元素使用包含。 [小提琴] [1]希望这会对你有所帮助。一切顺利。
[1]: http://jsfiddle.net/mkdskd/78FVh/1/
答案 1 :(得分:0)
我会做以下事情:
创建一个包含所有可排序字段的对象,保持其状态:
var fields = {
name: null, // null, 'asc', or 'desc'
age: null, // null, 'asc', or 'desc'
gender: null // null, 'asc', or 'desc'
};
创建toggle
函数:
function toggle(fieldName) {
switch (fields[fieldName]) {
case 'asc': fields[fieldName] = 'desc'; break;
case 'desc': fields[fieldName] = null; break;
default: fields[fieldName] = 'asc'; break;
}
}
并创建一个函数以从fields
对象生成排序对象:
function getSorting() {
var sort = [];
for (var fieldName in fields) {
var value = fields[fieldName];
if (value != null) {
sort.push(fieldName + ':' + value);
}
}
return {sort: sort};
}
现在,例如,点击按钮'性别',您可以调用toggle('gender')
,然后通过getSorting()
获取新的排序对象。
或者,您可以通过简单地循环遍历数组中的现有排序值:
function removeFieldsStartingWith(array, str) {
var i = 0;
while (i < array.length) {
if (array[i].indexOf(str) === 0) {
array.splice(i, 1);
}
else {
i++;
}
}
}
并像removeFieldsStartingWith(myArray, 'gender:')