只有一行差异,我想知道这是否可能!
function sortHot() {
var order = [];
$("#container").children(".submission-preview").each(
function() {
var key = $(this).attr('id');
var value = $("div#" + key.replace("sub", "votes")).html() * key.replace("sub", "");
order.push([key, value]);
}
);
return order;
}
function sortNew() {
var order = [];
$("#container").children(".submission-preview").each(
function() {
var key = $(this).attr('id');
var value = key.replace("sub", "");
order.push([key, value]);
}
);
return order;
}
function sortTop() {
var order = [];
$("#container").children(".submission-preview").each(
function() {
var key = $(this).attr('id');
var value = $("div#" + key.replace("sub", "votes")).html();
order.push([key, value]);
}
);
return order;
}
最佳答案
概括键到值转换的一种更“实用”的方法是包装一个通用排序函数,该函数接受回调参数以在键上应用该转换。例如:
function sortGeneric(callback) {
var order = [];
$("#container").children(".submission-preview").each(function() {
var key = $(this).attr('id');
var value = callback(key);
order.push([key, value]);
});
return order;
}
function sortHot() {
return sortGeneric(function (key) {
return $("div#" + key.replace("sub", "votes")).html() * key.replace("sub", "");
});
}
function sortNew() {
return sortGeneric(function (key) {
return key.replace("sub", "");
});
}
function sortTop() {
return sortGeneric(function (key) {
return $("div#" + key.replace("sub", "votes")).html();
});
}
关于javascript - 如何将这三个功能重构为一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5201666/