Javascript 在数组中搜索字符串/值并替换数组中的字符串/值
尝试在给定数组中查找字符串/值并用新值替换它; 更像是切换排序值并将其推送到数组中 需要在单击时检查值Javascript 在数组中搜索字符串/值并替换数组中的字符串/值,javascript,jquery,arrays,angularjs,underscore.js,Javascript,Jquery,Arrays,Angularjs,Underscore.js,尝试在给定数组中查找字符串/值并用新值替换它; 更像是切换排序值并将其推送到数组中 需要在单击时检查值 if(_.contains($scope.sortList, sortText)){ console.log("exist"); } else{ console.log("doesnt exist"); } 我会这样做: 创建一个包含所有可排序字段的对象,保存其状态: var fields = { name: null, // null, 'asc', or
if(_.contains($scope.sortList, sortText)){
console.log("exist");
} else{
console.log("doesnt exist");
}
我会这样做: 创建一个包含所有可排序字段的对象,保存其状态:
var fields = {
name: null, // null, 'asc', or 'desc'
age: null, // null, 'asc', or 'desc'
gender: null // null, 'asc', or 'desc'
};
创建一个切换
功能:
function toggle(fieldName) {
switch (fields[fieldName]) {
case 'asc': fields[fieldName] = 'desc'; break;
case 'desc': fields[fieldName] = null; break;
default: fields[fieldName] = 'asc'; break;
}
}
并创建一个函数,从字段
对象生成排序对象:
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(数组,str){
var i=0;
while(i
像这样使用
removeFieldsStartingWith(myArray,'gender:')
嘿,兄弟,你应该搜索前面的问题,检查下面的fiddle它对数组字符串/值进行排序,现在你需要使用下划线来查找use包含的元素。
希望这对你有帮助。祝你一切顺利
[1]: http://jsfiddle.net/mkdskd/78FVh/1/
你问题的最后一部分是什么?“在…数组中查找字符串/值”部分非常简单,只需对数组使用
indexOf()
方法,然后对数组进行索引即可