具有较少的任何编码背景,我试图从javascript中具有indexof条件的现有数组中实现过滤后的数组。
我的代码:
function CheckIfexists(element) {
return (element.indexOf(formInput) > -1);
}
var filtered = data.filter(CheckIfexists);
window.alert(filtered[1] + " " + filtered[2] + " " + filtered[3]);
上面的代码无效
addl info:
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因为我用代码al
检查了每个元素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");
我得到了匹配但不匹配的。 Addl注意:数据数组有部分名称,forminput可能与数据数组中的元素不完全相同,也可能是部分的.. 我的斗争是将过滤后的数据放入新数组中。
答案 0 :(得分:-1)
将在数组中的每个元素上调用函数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)时要注意。
答案 1 :(得分:-2)
var newArray = [];
for(var i=0;i<data.length;i++) {
var item = data[i];
if(item.indexOf(formInput1) > -1) {
newArray.push(item);
}
});
我明白了......上面那段代码对我有用...... 再次感谢..