【问题标题】:How to get array elements which match variable?如何获取与变量匹配的数组元素?
【发布时间】:2016-06-02 12:03:34
【问题描述】:

我有一个这样的数组:

var numbers = ["one", "two", "three", "four", "five", "six", "seven"];

现在我需要根据这个变量创建一个新数组:

var search;

EX1:

var search = 'f';

我想要这个:

var matches = ['four','five'];

EX2:

var search = 'fi';

我想要这个:

var matches = ['five'];

EX3:

var search = 'fig';

我想要这个:

var matches = []; // empty

我该怎么做?

【问题讨论】:

  • 带有一个在每个数组项上使用 indexOf() 的 for 循环?
  • 您是否需要以完全相同的方式匹配子字符串?我的意思是,您是否也需要 var search = "fie" 来匹配值“五”?
  • 有许多数组方法可以用于此。请展示您尝试过的内容。还要澄清什么构成匹配。 t 是否与 fifteen 匹配?
  • 听起来你想让我们做你的功课

标签: javascript jquery arrays filter


【解决方案1】:

你可以使用filter:

numbers.filter(function(x){ if(x.indexOf(search) >= 0) return x })

JSFiddle

【讨论】:

  • 这实际上是错误的。不满足所有边缘情况。
  • @self:据我所知,这是预期的行为
  • @self 为什么你认为它不能满足所有边缘情况?
【解决方案2】:

你可以使用这样的概念:

var numbers = ["one", "two", "three", "four", "five", "six", "seven"];

var matches = [];

var search = 'f';
var sl=search.length;

for(i=0;i<numbers.length;i++){

  if(numbers[i].substring(0,sl)===search){

       matches.push(numbers[i]);
    }

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-26
    • 1970-01-01
    • 2018-06-03
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多