在数组中查找对象

时间:2019-01-30 17:31:00

标签: jquery arrays arrayobject

我已经为此转动了一段时间。我有一个这样构造的对象数组:

0: {name: "Coaches", isActive: true, locations: Array(13)}
1: {name: "Directors", isActive: false, locations: Array(13)}
2: {name: "Trainers", isActive: false, locations: Array(5)}

我有一个导航菜单,当鼠标进入时会获得订单项的文本。现在,我试图在数组中将该文本与名称文本进行比较,以便我可以构建位置的子项

        $('.nav ul').hide();
    $('.nav li').mouseenter(function () {                        
        $(this).children('ul').stop().slideDown('slow');
        var text = $(this).find('span').text();
        //console.log(text);

        var item = leftNavData.modules.findIndex(i => i.name.toLowerCase() === "coaches");
        var i = leftNavData.modules.find(x => x.name.toLowerCase() == text.toLowerCase());
        console.log(i);
        console.log(item);

    }).mouseleave(function () {

        $(this).children('ul').stop().slideUp('slow')
    });

即使我将鼠标悬停在其他元素上,结果也始终会返回第一个指导的同一对象。

文本在变化,但是查找始终重新调整第一个对象。

findIndex始终为0。

我已经开始herehere

有什么想法或我想念的东西吗?

谢谢

1 个答案:

答案 0 :(得分:1)

基于对.toLowerCase()是方法而不是属性的误解而导致的简单错误。

.toLowerCase()

不是

.toLowerCase