参见英文答案 >
Access / process (nested) objects,arrays or JSON12个
我有一个JavaScript数组:
我有一个JavaScript数组:
var j_array = new Array(); j_arry=["class:1","division:a","class:5","class:3","division:b","division:c","division:d","class:10"];
我需要找到班级来的多少次及其数组键,所以我使用:
found = $.inArray('class',j_array); ` But it returns `-1`;
然后我用:
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); }); });
但这也是错的.我该如何解决?
从这个数组我想得到以下内容:
>等级4次,在键0,2,3和7
>我想单独制作一个类的数组,也就是说,
new_array = ["class:1","class:2","class:10"];
>目前j_array中有四个类.我如何获得第N类的价值
也就是说,第一类值=“类:1”,第二类值=“类:5”等
解决方法
使用
Array.prototype.filter
过滤出包含字符串类的数组元素 – 请参见下面的演示:
var j_array =["class:1","class:10"]; var result = j_array.filter(function(e){ return e.indexOf('class')!==-1; }); console.log(result);
编辑:
要获取索引列表,您可以尝试以下方式:
var j_array =["class:1","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
.as-console-wrapper{top:0;max-height:100%!important;}