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());
});