gpt4 book ai didi

javascript - 为什么当值存在时indexOf()仍然返回-1

转载 作者:行者123 更新时间:2023-12-03 10:41:56 24 4
gpt4 key购买 nike

我正在从 products.csv 中获取产品代码并将其推送到产品数组中。当我在数组中搜索字符串时,它仍然返回 -1,而它已经有匹配的值。

jQuery.get('v/wds-custom/products.csv', function(data) {
var products = new Array();
var rows = data.split("\n");
for (var i = 0; i < rows.length; i++)
products.push(rows[i].toLowerCase());
if($('#vCSS_mainform').length > 0) {
var mainform_action = $('#vCSS_mainform').attr('action').toLowerCase();
if(mainform_action.indexOf("productdetails.asp") > -1) {
var current_productCode = decodeURIComponent(mainform_action.split("=")[1]);
console.log(products); // ["alg-207", "alg-357", "alg-434"]
console.log(current_productCode); // alg-207
console.log(products.indexOf(current_productCode)); // -1
}
}
});

重要提示:如果我将 products.csv 设为单行,仅包含 alg-207,它将返回 0,但无法处理多行。

最佳答案

我怀疑您看到的是控制台的伪影。控制台可能有点棘手:如果它向您显示产品的> Array[3],然后您单击箭头查看它们,它可能会向您显示数组的内容当您单击箭头时,而不是当该行被记录时。 (是的,确实如此。)Chrome 就是这样工作的(有时,它会根据调用 log 时控制台是关闭还是打开而变化 - 是的,确实如此),其他人也可能如此。这是 console.log 不能替代设置断点和单步执行代码、在执行暂停时实时检查变量的众多原因之一。

但是,如果由于某种原因您不得不使用console.log而不是调试器,则可以通过执行以下操作使其记录文本而不是实时对象引用:

console.log(JSON.stringify(products));

...类似的。

关于javascript - 为什么当值存在时indexOf()仍然返回-1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28731008/

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