如何使用jQuery搜索JavaScript数组中的字符串?

Kam*_*mal 11 javascript arrays jquery

我有一个JavaScript数组:

var j_array = new Array();
j_arry=["class:1","division:a","class:5","class:3","division:b","division:c","division:d","class:10"];
Run Code Online (Sandbox Code Playgroud)

我需要找到该类的次数和它的数组键,所以我使用:

found = $.inArray('class', j_array); ` But it returns `-1`;
Run Code Online (Sandbox Code Playgroud)

然后我用:

var search = 'class';
$.each([j_array], function(index, value){
    $.each(value, function(key, cell){
        if (search.indexOf(cell) !== -1)
            console.log('found in array '+index, cell);
    });
});
Run Code Online (Sandbox Code Playgroud)

但这也是错误的.我该如何解决这个问题?

从这个数组我想得到以下内容:

  1. 等级为4次,等级为0,2,3和7

  2. 我想只创建一个单独的类数组,即

    new_array = ["class:1", "class:2", "class:3", "class:10"];
    
    Run Code Online (Sandbox Code Playgroud)
  3. 目前有四个班级j_array.我怎么能得到Nth class value

也就是说,1st class value ="class:1",2nd class value="class:5",等.

kev*_*net 13

您可以过滤在新数组中匹配的元素,并返回此新数组的长度

var j_arry = ["class:1","division:a","class:5","class:3","division:b","division:c","division:d","class:10"];
var res = j_arry.filter(x => x.includes("class"));
var key = res.map(x => x.split(":")[1]);
console.log("Class coming " + res.length + " , at key " + key.join(","));
console.log("new array = ", res);
Run Code Online (Sandbox Code Playgroud)


kuk*_*kuz 8

使用Array.prototype.filter过滤掉包含字符串数组的元素 -看到下面的演示:

var j_array =["class:1","division:a","class:5","class:3","division:b","division:c","division:d","class:10"];

var result = j_array.filter(function(e){
  return e.indexOf('class')!==-1;
});

console.log(result);
Run Code Online (Sandbox Code Playgroud)

编辑:

要获取索引列表,您可以尝试:

var j_array =["class:1","division:a","class:5","class:3","division:b","division:c","division:d","class:10"];

var filteredIndices = []

var filtered = j_array.filter(function(e,i){
  if(e.indexOf('class')!==-1) {
    filteredIndices.push(i);
    return true;
  } else {
    return false;
  }
});

console.log(filtered);
console.log(filteredIndices);

// Nth class value
console.log(filtered[2]); // this prints the 3rd one
Run Code Online (Sandbox Code Playgroud)
.as-console-wrapper{top:0;max-height:100%!important;}
Run Code Online (Sandbox Code Playgroud)

  • 没朋友 .实际上你给出问题2的答案,结果[N]基于新数组.但我想基于J_array的结果[N].我找不到第一个问题的答案. (2认同)