繁体   English   中英

在数组中搜索字符串/值并替换数组中的字符串/值

[英]Search for the string/value in the array and replace the string/value in the array

尝试在给定数组中查找字符串/值并将其替换为新值; 更像是切换排序值并将其推入数组;

DEMO

需要检查点击的价值;

if(_.contains($scope.sortList, sortText)){
    console.log("exist");
  } else{
    console.log("doesnt exist");
  }

嘿,兄弟,您可能已经搜索过先前的问题,请在下面的小提琴中查看一下,它对数组字符串/值进行了排序,现在您需要使用下划线来查找包含元素的元素。 [fiddle] [1]希望这会对您有所帮助。 祝一切顺利。

[1]: http://jsfiddle.net/mkdskd/78FVh/1/

我将执行以下操作:

创建一个具有所有可排序字段的对象,并保持其状态:

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对象生成sort对象:

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:')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM