mad*_*mix 2 javascript arrays variables while-loop
我有5个数组,每个数组内有8个字符串.每个数组的名称都被数字所取代,例如'titles1','titles2'......我想创建一个while循环来检查每个数组中的每个字符串.我目前遇到的问题是我无法更改数组名称中的数字(从1到5 - titles1,2,3 ......).知道我怎么能让它工作吗?但是代码可以工作,因为数组名称现在是一个字符串,它不会检查数组中的任何内容.
var i = 0; var j = 1; var titles = '';
while(j <= 5) {
titles = 'titles' + j;
while(titles1.length >= i) {
if (searchBookInput === titles[i]) {
return titles[i] + ' is available';
}
i++;
} j++; i = 0;
}
Run Code Online (Sandbox Code Playgroud)
您可以将五个数组放入一个对象并迭代其键,而不是尝试迭代变量名称:
var myObj = {
titles1: ["The", "quick", "fox", "jumps", "over", "the", "lazy", "dog"],
titles2: ["The", "quick", "fox", "jumps", "over", "the", "lazy", "dog"],
titles3: ["The", "quick", "fox", "jumps", "over", "the", "lazy", "dog"],
titles4: ["The", "quick", "fox", "jumps", "over", "the", "lazy", "dog"],
titles5: ["The", "quick", "fox", "jumps", "over", "the", "lazy", "dog"]
};
for (var key in myObj) {
var array = myObj[key]; //array will be titles1, titles2, ...
//do your stuff here...
}
Run Code Online (Sandbox Code Playgroud)
这是有效的,因为在JavaScript中,您可以通过两种方式访问对象的值:
object.someValue
Run Code Online (Sandbox Code Playgroud)
和
object["someValue"]
Run Code Online (Sandbox Code Playgroud)