Найдите функцию «sortFn» ниже. Эта функция сортируется по неограниченному числу параметров (например, в c #: SortBy (...). ThenBy (...). ThenByDesc (...)).
function sortFn() {
var sortByProps = Array.prototype.slice.call(arguments),
cmpFn = function(left, right, sortOrder) {
var sortMultiplier = sortOrder === "asc" ? 1 : -1;
if (left > right) {
return +1 * sortMultiplier;
}
if (left < right) {
return -1 * sortMultiplier;
}
return 0;
};
return function(sortLeft, sortRight) {
// get value from object by complex key
var getValueByStr = function(obj, path) {
var i, len;
//prepare keys
path = path.replace('[', '.');
path = path.replace(']', '');
path = path.split('.');
len = path.length;
for (i = 0; i < len; i++) {
if (!obj || typeof obj !== 'object') {
return obj;
}
obj = obj[path[i]];
}
return obj;
};
return sortByProps.map(function(property) {
return cmpFn(getValueByStr(sortLeft, property.prop), getValueByStr(sortRight, property.prop), property.sortOrder);
}).reduceRight(function(left, right) {
return right || left;
});
};
}
var arr = [{
name: 'marry',
LocalizedData: {
'en-US': {
Value: 10000
}
}
}, {
name: 'larry',
LocalizedData: {
'en-US': {
Value: 2
}
}
}, {
name: 'marry',
LocalizedData: {
'en-US': {
Value: 100
}
}
}, {
name: 'larry',
LocalizedData: {
'en-US': {
Value: 1
}
}
}];
document.getElementsByTagName('pre')[0].innerText = JSON.stringify(arr)
arr.sort(sortFn({
prop: "name",
sortOrder: "asc"
}, {
prop: "LocalizedData[en-US].Value",
sortOrder: "desc"
}));
document.getElementsByTagName('pre')[1].innerText = JSON.stringify(arr)
pre {
font-family: "Courier New" Courier monospace;
white-space: pre-wrap;
}
Before:
<pre></pre>
Result:
<pre></pre>
Опция поискового запроса (q =)
Если вы хотите получать сообщения с определенной меткой, вы можете использовать этот запрос:
GET https: //www.googleapis.com/blogger/v3/blogs/2399953/posts/search?q=label:label1&key=THE-KEY
Если вы хотите получать сообщения с пометкой ' это ', а также ' то '(если один из них не совпадает, это не совпадение), вы можете использовать:
Используйте кавычки вокруг меток с пробелами:
[1117 ] GET https://www.googleapis.com/blogger/v3/blogs/15045980/posts/search?q=label%3A%22James+Whittaker%22&key=THE-KEY
Вероятно, лучший вариант, чтобы получать сообщения по ярлыкам
Источник: https://developers.google.com/blogger/docs/3.0/reference/posts/list
HTTP-запрос:
GET https://www.googleapis.com/blogger/v3/blogs/blogId/posts
Среди необязательных параметров есть [1 11] параметр:
labels string Comma-separated list of labels to search for.
Пример HTTP-запроса (с использованием blogId блога тестирования Google):
Обратите внимание, что кавычки вокруг метки не должны быть включены , а не , используя это вариант.
Для получения следующей страницы постов сохраните заданный nextPageToken
, как указано в комментариях, и поместите его в параметр pageToken
, например: