在Javascript中返回对象

Gid*_*idi 0 javascript jquery

我有以下变量:

var tags = [{name:'Bold', key:'b'}, { name: 'Italic', key:'i'}]
Run Code Online (Sandbox Code Playgroud)

然后,为了获得正在处理的正确标签,我构建了一个函数:

function getCurrentTag(tagType) {
    $.each(tags, function() {
        if (tagType==this.name) {
            return this;
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

在主要范围内我称之为:

currentTag = getCurrentTag('Bold');
Run Code Online (Sandbox Code Playgroud)

但currentTag总是"未定义".

我怎样才能解决这个问题?

吉迪

jAn*_*ndy 6

function getCurrentTag(tagType) {
    for(var i = 0, len = tags.length; i < len; i++) {
        if( tags[i].name === tagType )
            return tags[i];
    }
}
Run Code Online (Sandbox Code Playgroud)

使用jQuerys .each()for..in循环来循环数组是不必要的(慢).由于$.each()每次交互都应用一个回调函数,因此您将该值返回给此匿名函数.你永远不会回来getCurrentTag()