Javascript通过比较字符串值和数组来获取数组的索引值
我正在读取一个文本框,试图将该值与数组进行比较,并获取索引值,但由于某种原因,我无法通过此类型错误:ar[z]是未定义的错误,即使我可以在上一行中使用数值对其进行console.logJavascript通过比较字符串值和数组来获取数组的索引值,javascript,arrays,Javascript,Arrays,我正在读取一个文本框,试图将该值与数组进行比较,并获取索引值,但由于某种原因,我无法通过此类型错误:ar[z]是未定义的错误,即使我可以在上一行中使用数值对其进行console.log //get name from textbox var name= document.getElementById("name"); var name= name.value; //remove everything before name var index = na
//get name from textbox
var name= document.getElementById("name");
var name= name.value;
//remove everything before name
var index = name.toString().split(":");
var index = index[1];
//get product data to array
var ar = JSON.parse( '<?php echo json_encode($productlist) ?>' );
var nameslist= [];
var z = 0;
//this gives out an value
console.log(ar[0]['product_name']);
//push 10 names to one list
////HERE IS THE ERROR: typeError: ar[z] is undefined
while(z < 10){
nameslist.push(ar[z]['product_name']);
z++;
}
//Get the index value of name that matched the one from textbox
var a = nameslist.indexOf(index);
console.log(a);
您可能想尝试以下方法:
var l = ar.length <= 10 ? ar.length : 10;
while(z < l) {
nameslist.push(ar[z]['product_name']);
z++;
}
使用
//get product data to array
var ar = [{'product_name':"P1"},{"product_name":"P2"}]
var nameslist = [];
var z = 0;
console.log(ar[0]['product_name']);
//push 10 names to one list
////HERE IS THE ERROR: typeError: ar[z] is undefined
for(i=0;i<ar.length;i++)
{
nameslist.push(ar[i]['product_name'])
}
console.log(nameslist);
使用Jquery可以很容易地完成
if ($.inArray(value, myvalueArr) > -1) {
alert($.inArray(value, myvalueArr);)
}
这将为您提供与值匹配的数组中的索引您可以设置一个JSFIDLE,用其实际输出替换PHP标记吗?是或粘贴console.logArmo的值最可能的原因是您试图处理一个未定义的索引,这意味着您的数组可能少于10项。试试whilez