繁体   English   中英

如何在javascript中使用条件索引过滤数组

[英]how to filter an array with index of condition in javascript

由于没有任何编码背景,我正在尝试从具有javascript中indexof条件的现有数组中获取经过过滤的数组。

我的代码:

function CheckIfexists(element) {
  return (element.indexOf(formInput) > -1);
}
var filtered = data.filter(CheckIfexists);
window.alert(filtered[1] + " " + filtered[2] + " " + filtered[3]);

上面的代码不起作用

地址信息:

forminput是从表单领域获取的输入。

var formInput = document.getElementById("textReader").value;

我得到的数据数组...

var data = oRequest.responseText.split("\r\n");

我尝试的另一种方法是..

function CheckIfexists(formInput) {
   for (var i = 0; i < data.length; i += 1) {
       if (data[i].indexOf(formInput) > -1) {
           return false;
       }
   } 
   return true;
}

var filtered = data.filter(CheckIfexists);
window.alert(filtered[1] + " " + filtered[2] + " " + filtered[3]);

上面的代码也不起作用。


不要怀疑数据数组和forminput是因为我用代码检查了每个元素

for(var i=0; i<data.length; i++) {  
    if (data[i] === formInput) {
        alert("You want to retrieve report?");
        didntfind = false;
        break;
    } 
}

     if (didntfind) alert("sorry. part not found");

我得到了匹配的和不匹配的。 另外请注意:数据数组具有部件名称,forminput可能与数据数组中的元素不完全相同,也可能是不完整的。.我的努力是在新数组中获取过滤后的内容。

函数CheckIfexists将在数组中的每个元素上调用。 阅读并运行以下代码以更好地理解:

var data = [1,2,3,4,10];
console.log(data.filter(function (item) { return item > 3; }));

我可以看到您想要做什么。 我认为,您需要编写如下内容:

var formInput = document.getElementById("textReader").value;
var data = oRequest.responseText.split("\r\n");

function CheckIfExists(element) {
  return (element === formInput);
};

var filtered = data.filter(CheckIfexists);

并注意在javascript中检查元素是否相等时(例如“ 1”!== 1)。

var newArray = [];
for(var i=0;i<data.length;i++) {
    var item = data[i];
    if(item.indexOf(formInput1) > -1) {
        newArray.push(item);
    }
});

我明白了..上面的代码对我有用...再次感谢..

暂无
暂无

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

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