有没有更优雅的方法来编写这种函数而不必初始化数组:
function getStuff () {
var some_array= [];
$("#some-id ul li span.key").each(function() {
some_array.push($(this).text());
});
return some_array;
}
有没有更优雅的方法来编写这种函数而不必初始化数组:
function getStuff () {
var some_array= [];
$("#some-id ul li span.key").each(function() {
some_array.push($(this).text());
});
return some_array;
}
function getStuff () {
return $.map($("#some-id ul li span.key"), function(el) {
return $(el).text();
});
}
性能方面,差异很小。此外,正如 Lix 所说,选择您认为更具可读性和可维护性的方法。最后,两者最终都会创建一个数组,迭代元素,将字符串值推送到数组并返回数组。
另一种更实用的感觉方式可能是:
定义一个“方法”函数:
var method = function (method) {
return function (item) {
return $(item)[method]();
};
};
你可以像这样使用它:
var text = method('text');
var html = method('html');
var fadeIn = method('fadeIn');
要重新工作您的getStuff
功能:
var getText = function (arr) {
return $.map(arr, text);
};
$.map
遍历传入的数组,应用从 返回的函数var text = method('text')
,这只是$(array item).method()
.
I just threw this together to demonstrate a way you can use these kinds of techniques. You would probably name things differently and define the "method" function as a custom library/helper that is meant to be used app-wide.