Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在数组中搜索字符串/值并替换数组中的字符串/值_Javascript_Jquery_Arrays_Angularjs_Underscore.js - Fatal编程技术网

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()
方法,然后对数组进行索引即可