在Javascript中返回对象
我有以下变量:在Javascript中返回对象,javascript,jquery,Javascript,Jquery,我有以下变量: var tags = [{name:'Bold', key:'b'}, { name: 'Italic', key:'i'}] 然后,为了获得我正在处理的正确标记,我构建了一个函数: function getCurrentTag(tagType) { $.each(tags, function() { if (tagType==this.name) { return this; } }); } 在主要范围
var tags = [{name:'Bold', key:'b'}, { name: 'Italic', key:'i'}]
然后,为了获得我正在处理的正确标记,我构建了一个函数:
function getCurrentTag(tagType) {
$.each(tags, function() {
if (tagType==this.name) {
return this;
}
});
}
在主要范围内,我称之为:
currentTag = getCurrentTag('Bold');
但是currentTag总是“未定义”
我怎样才能解决这个问题
Gidi您永远不会返回
$的结果。each()
函数getCurrentTag(tagType){
for(var i=0,len=tags.length;i
使用jQuerys.each()
或for..in
循环在数组上循环是不必要的(速度慢)。
由于
$.each()
对每个交互应用回调函数,因此您将该值返回给该匿名函数。使用本机javascript函数从getCurrentTag()
返回。这里不需要使用jQuery
var tags = [{name:'Bold', key:'b'}, { name: 'Italic', key:'i'}],
getCurrentTag = function (tags, name) {
var i = 0;
for (i = 0; i < tags.length; += 1) {
if (tags[i].name === name) {
return tags[i];
}
}
return False;
}
getCurrentTag(tags, 'Bold');
var tags=[{name:'Bold',key:'b'},{name:'Italic',key:'i'}],
getCurrentTag=函数(标记、名称){
var i=0;
对于(i=0;i
为什么要使用数组?如果有一个简单的名-值对对象,它会更干净
var tags = {'Bold':'b','Italic':'i'};
function getCurrentTag(tagType) {
return tags[tagType] || null;
}
所有这些循环都会很慢:这就是为什么“使用jquery”并不是它所宣称的万能药。Javascript有时完全独立工作。jQuery是一个库,而不是一种完整的语言。此外,还需要对$的输出进行进一步处理。每个函数都是必需的。詹迪的方式应该足够了
var tags = {'Bold':'b','Italic':'i'};
function getCurrentTag(tagType) {
return tags[tagType] || null;
}