如果CSV Papa Parse和jQuery中存在值



我正在尝试搜索CSV文件中的所有字段,如果值存在,则执行一项操作,如果不执行另一项操作。我让Papa Parse读取CSV文件并登录以在提交时控制台值,但就我而言,我无法计算出字段中的输入值,并且必须找到值。我想搜索所有值/字段,这样如果我输入姓名、电子邮件或数字,它就会找到它。必须完全匹配,但不区分大小写。CSV不必有标题,但这一个可以这样做,只需将它们作为搜索条目即可。

这是我的代码

HTML

<input type="text" name="input2" id="input2" value="" placeholder="Enter a member email"/>
<button type="submit" onclick="saveBtn()">Submit</button>

Javascript

function saveBtn() {
var input2Val = $('#input2').val();
var isMatched = false;  

var csv = "https://s3-us-west-2.amazonaws.com/s.cdpn.io/13566/names.csv";
let results = [];  
var csvData = Papa.parse(csv, {
//header: true,
download: true,
dynamicTyping: true,
complete: response => {
results = response.data;
// You can access the data here
console.log(results);
//document.body.innerHTML += findEmailByName("exampleName2");
}
});
function findEmailByName(name) {
return results.filter(data => data.Name === name)[0].Email;
}  

for (var i = 0; i < results.length; i++) {
if(results[i] === input2Val) {
isMatched = true;
break;
}
}
if(isMatched) {
alert('is matched and should work');
} else {
alert('Is not matched! Error!');
}
}

我这里还有一把小提琴

https://jsfiddle.net/abennington/8pbkqr0y/5/

非常感谢您的帮助!

response内部,您将获得二维数组作为响应,因此您需要使用2个循环,一个用于外部数组,另一个用于内部数组,并使用results[i][j]获得所需值。此外,如果您不想在1的搜索开始循环中包含标头。

演示代码 :

function saveBtn() {
var input2Val = $('#input2').val().toLowerCase();
var isMatched = false;
var csv = "https://s3-us-west-2.amazonaws.com/s.cdpn.io/13566/names.csv";
let results = [];
var csvData = Papa.parse(csv, {
//header: true,
download: true,
dynamicTyping: true,
complete: response => {
results = response.data;
//outer array
for (var i = 1; i < results.length; i++) {
//inner array [0,1]
for (var j = 0; j < results[i].length; j++) {
if (results[i][j].toLowerCase() === input2Val) {
console.log(results[i][j].toLowerCase() +" -- "+ input2Val)
isMatched = true;
break;
}
}
}
if (isMatched) {
console.log('is matched and should work');
} else {
console.log('Is not matched! Error!');
}
}
});

}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/PapaParse/5.1.0/papaparse.min.js"></script>
<input type="text" name="input2" id="input2" value="" placeholder="Enter a member email" />
<button type="submit" onclick="saveBtn()">Submit</button>

最新更新