jQuery/Javascript - 尝试使用同一级别的另一个值从多维数组中调用值
jQuery/Javascript - Trying to call value from multidimensional array using another value on the same level
这里是数组和相关代码:
galleryTypes = [];
galleryTypes[0] = ['basements', 3];
galleryTypes[1] = ['bathrooms', 8];
galleryTypes[2] = ['customcarpentry', 7];
galleryTypes[3] = ['desksporches', 8];
galleryTypes[4] = ['flooring', 5];
galleryTypes[5] = ['historicrestoration', 6];
galleryTypes[6] = ['kitchens', 6];
$(document).ready(function () {
startNow = setInterval(forwardImage, 4000);
var GalleryName = $('.GalTitle').attr('id');
alert(GalleryName);
for( var galResult = 0, len = galleryTypes.length; galResult < len; galResult++ ) {
if( galleryTypes[i][0] === GalleryName ) {
return galResult;
break;
}
}
alert(galResult);
我想找到一个函数,让我可以找到字符串所在的第一个数组的索引。 IE:地下室 return 0,地板 return 4.
我将继续使用索引来获取第二个数组的第二部分,就像地下室最终会引导我到 3 和地板到 5。我不想直接去那里,因为我需要稍后使用索引在另一个数组中查找项目。
非常感谢您能给我的任何帮助。我想使用大多数浏览器都支持的代码。当前代码甚至没有 post 第二个警报。
很简单,创建一个函数并迭代:
function findWord(word) {
for (var i = 0; i < galleryTypes.length; i++) {
if (galleryTypes[i].indexOf(word) > -1) return i;
}
return -1;
}
如果返回-1
,则该项目不存在。
var index = findWord("flooring"); //returns 4
对@tymeJV 做了一些微小的改动
使用这个功能
function findSiblings(array,keyword,shiftPosition){
var iterator = array.length;
for(var i=0;i<iterator;i++){
if(array[i].indexOf(keyword) > -1 && typeof(array[i].indexOf(keyword) + shiftPosition) !== 'undefined') return array[i][array[i].indexOf(keyword) + shiftPosition];
}
return -1;
}
var sib = findSiblings(galleryTypes,'flooring',1);
console.log(sib);
startNow = setInterval(forwardImage, 4000);
现在开始打破了一切。你想在这里做什么?我将其删除并进行了以下更改并返回了 4 个。
第二个警报从未触发的原因是,您在 if 语句中返回 galResult,但从未调用函数。只是提醒变量。
您还迭代了 galResult 但在 is 语句中使用了 [i][0]。 .ready 函数中也省略了右括号和括号。没什么大不了的。
我在我的函数中将 GalleyName 设置为 flooring,您应该可以将其设置回检索 GalTtile 的值。
$(文档).ready(函数(){
var GalleryName = "flooring";
alert(GalleryName);
var foo = function() {
for( var galResult = 0, len = galleryTypes.length; galResult < len; galResult++ ) {
if( galleryTypes[galResult][0] === GalleryName ) {
return galResult;
break;
}
}
};
alert(foo());
});
这里是数组和相关代码:
galleryTypes = [];
galleryTypes[0] = ['basements', 3];
galleryTypes[1] = ['bathrooms', 8];
galleryTypes[2] = ['customcarpentry', 7];
galleryTypes[3] = ['desksporches', 8];
galleryTypes[4] = ['flooring', 5];
galleryTypes[5] = ['historicrestoration', 6];
galleryTypes[6] = ['kitchens', 6];
$(document).ready(function () {
startNow = setInterval(forwardImage, 4000);
var GalleryName = $('.GalTitle').attr('id');
alert(GalleryName);
for( var galResult = 0, len = galleryTypes.length; galResult < len; galResult++ ) {
if( galleryTypes[i][0] === GalleryName ) {
return galResult;
break;
}
}
alert(galResult);
我想找到一个函数,让我可以找到字符串所在的第一个数组的索引。 IE:地下室 return 0,地板 return 4.
我将继续使用索引来获取第二个数组的第二部分,就像地下室最终会引导我到 3 和地板到 5。我不想直接去那里,因为我需要稍后使用索引在另一个数组中查找项目。
非常感谢您能给我的任何帮助。我想使用大多数浏览器都支持的代码。当前代码甚至没有 post 第二个警报。
很简单,创建一个函数并迭代:
function findWord(word) {
for (var i = 0; i < galleryTypes.length; i++) {
if (galleryTypes[i].indexOf(word) > -1) return i;
}
return -1;
}
如果返回-1
,则该项目不存在。
var index = findWord("flooring"); //returns 4
对@tymeJV 做了一些微小的改动
使用这个功能
function findSiblings(array,keyword,shiftPosition){
var iterator = array.length;
for(var i=0;i<iterator;i++){
if(array[i].indexOf(keyword) > -1 && typeof(array[i].indexOf(keyword) + shiftPosition) !== 'undefined') return array[i][array[i].indexOf(keyword) + shiftPosition];
}
return -1;
}
var sib = findSiblings(galleryTypes,'flooring',1);
console.log(sib);
startNow = setInterval(forwardImage, 4000);
现在开始打破了一切。你想在这里做什么?我将其删除并进行了以下更改并返回了 4 个。
第二个警报从未触发的原因是,您在 if 语句中返回 galResult,但从未调用函数。只是提醒变量。
您还迭代了 galResult 但在 is 语句中使用了 [i][0]。 .ready 函数中也省略了右括号和括号。没什么大不了的。
我在我的函数中将 GalleyName 设置为 flooring,您应该可以将其设置回检索 GalTtile 的值。 $(文档).ready(函数(){
var GalleryName = "flooring";
alert(GalleryName);
var foo = function() {
for( var galResult = 0, len = galleryTypes.length; galResult < len; galResult++ ) {
if( galleryTypes[galResult][0] === GalleryName ) {
return galResult;
break;
}
}
};
alert(foo());
});