Javascript 按行号筛选数组的数组
我正致力于基于网站的内置搜索功能,复制一个带有手持设备的实时过滤框 现在我正在使用文档中最简单的用例() 数据是一组数组:Javascript 按行号筛选数组的数组,javascript,jquery,arrays,handsontable,Javascript,Jquery,Arrays,Handsontable,我正致力于基于网站的内置搜索功能,复制一个带有手持设备的实时过滤框 现在我正在使用文档中最简单的用例() 数据是一组数组: var data = [ ['Nissan', 2012, 'black', 'black'], ['Nissan', 2013, 'blue', 'blue'], ['Chrysler', 2014, 'yellow', 'black'], ['Volvo', 2015, 'yellow', 'gray'] ], 如文档中所述,在此代码中,如果您输入搜索
var
data = [
['Nissan', 2012, 'black', 'black'],
['Nissan', 2013, 'blue', 'blue'],
['Chrysler', 2014, 'yellow', 'black'],
['Volvo', 2015, 'yellow', 'gray']
],
如文档中所述,在此代码中,如果您输入搜索字符串,您将使用以下函数获得输出到控制台的匹配单元格:
Handsontable.Dom.addEvent(searchFiled, 'keyup', function (event) {
var queryResult = hot.search.query(this.value);
console.log(queryResult);
hot.render();
我对它进行了如下修改:
function getRowsFromObjects(queryResult) {
rows = [];
for (var i = 0, l = queryResult.length; i < l; i++) {
debugger
rows.push(queryResult[i].row);
}
console.log('rows',rows);
return rows;
}
Handsontable.Dom.addEvent(searchFiled, 'keyup', function (event) {
var queryResult = hot.search.query(this.value);
console.log(queryResult);
rows = getRowsFromObjects(queryResult);
hot.render();
});
有没有一种简单的方法可以通过javascript中的行号(即索引)过滤数据(一个数组数组)
我的计划是抓取过滤后的数据行并重新呈现表
编辑:因为我的问题可能会让人困惑。下面是一个例子:
data = [a,b,c,d] - the letters are arrays
rows = [0,1],
我想应用一个过滤器,以便输出
data = [a,b]
您可以通过一个相当简单的
Array.prototype.filter
调用来实现这一点:
//安装程序。。。
var数据=[],指数=[1,3,5,7,8,9];
对于(变量i=0;i<15;i++){
数据推送('item#'+i);
}
//这就是魔法发生的地方
var filtered=data.filter(函数(d,ix){returnindex.indexOf(ix)>=0;});
//输出。。。
document.write(“”+JSON.stringify(过滤)+“”)代码>长话短说,您有一个项目数组(每个项目都是一个数组,但这是巧合)-称之为数据,还有一个索引数组-称之为索引,并且您只需要一个新数组,其中包含数据中的项目,这些行的行号在索引中。是吗?我认为你所说的是正确的,我会在上面举个例子。谢谢,但我认为我的例子可能会更清楚。我认为两个版本都完全符合你的例子的要求。请试一试。好的,我花了一段时间才理解设置(对不起,JS新手)。是的,应该有用。非常感谢。
data = [a,b]