gpt4 book ai didi

javascript - 查找数组中字符串的值

转载 作者:行者123 更新时间:2023-12-02 14:29:13 25 4
gpt4 key购买 nike

我已经为这个简单的脚本工作了几个小时,但遇到了困难。我有一个由 JSON 值组成的数组。当用户搜索字符串并单击按钮时,脚本会根据数组中存储的值检查字符串。

我遇到的问题是条件部分,它总是返回不匹配的内容 - 即使我输入了一个我知道在 JSON 文件中的字符串。

代码如下。任何指导/指示将不胜感激。

感谢您的帮助!

标记。

    $('#validate-info').on('click', function(){

// Get data, initiate callback
$.getJSON('memberships.json', validateMembership);
// Execute callback function
function validateMembership(data) {

// Capture entered value
var userVal = document.getElementById('form-data').value;
console.log(userVal);

var infoTxt = '';

// Push all items into an Array
var infoArray = [];

$.each(data, function(member, memberInfo) {
infoTxt += '<p><strong>Name:</strong> ' + memberInfo.name + '<br />';
infoTxt += '<strong>Membership No.:</strong> ' + memberInfo.number + '<br />';
infoTxt += '<strong>Expiry Date:</strong> ' + memberInfo.expiry + '</p>';
infoArray.push({
name: memberInfo.name,
number: memberInfo.number,
expiry: memberInfo.expiry
});
});

if ($.inArray(userVal, infoArray) > -1 ) {
// the value is in the array
$('#response').html('<p style="color: green;">In the array</p>');
} else {
$('#response').html('<p style="color: red;">Sorry, no matches.</p>');
}

}

});

最佳答案

您将输入字符串与对象进行比较,但它们永远不会匹配。您只需与名称进行比较即可。您可以使用 Array.prototype.some 函数来测试它们是否匹配。

if (infoArray.some(function(obj) {
return obj.name == userVal;
})) {
$('#response').html('<p style="color: green;">In the array</p>');
} else {
$('#response').html('<p style="color: red;">Sorry, no matches.</p>');
}

您也可以在推送到 infoArray 的循环期间执行此操作。

var match = false;
$.each(data, function(member, memberInfo) {
infoTxt += '<p><strong>Name:</strong> ' + memberInfo.name + '<br />';
infoTxt += '<strong>Membership No.:</strong> ' + memberInfo.number + '<br />';
infoTxt += '<strong>Expiry Date:</strong> ' + memberInfo.expiry + '</p>';
infoArray.push({
name: memberInfo.name,
number: memberInfo.number,
expiry: memberInfo.expiry
});
if (memberInfo.name == userVal) {
match = true;
}
});

if (match) {
$('#response').html('<p style="color: green;">In the array</p>');
} else {
$('#response').html('<p style="color: red;">Sorry, no matches.</p>');
}

关于javascript - 查找数组中字符串的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37981047/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com