如何获得下一个(120),前一个(122)对象?目前在第二个对象,141。此外,我控制了JSON格式。
var articleId = 141;
var url = {
"Article": [
{
"Id": "122",
"Title": "Article #122"
},
{
"Id": "141",
"Title": "Article #141"
},
{
"Id": "120",
"Title": "Article #120"
}
]
};
$.each(url.Article, function (i, data) {
var current = data.Id;
if (current == articleId)
console.log(this.Title)
//next
//previous
});
答案 0 :(得分:0)
代码示例中的变量i
实际上是您当前所在的url.Article
索引。使用此变量,您可以轻松找到下一个和上一个对象。
作为一个例子......
var prev = i > 0 ? url.Article[i - 1] : null;
var next = i < url.Article.length - 1 ? url.Article[i + 1] : null;
答案 1 :(得分:0)
i
是指您所在的当前索引。因此,您可以分别使用i+1
和i-1
来引用next和prev索引。喜欢
$.each(url.Article, function (i, data) {
var current = data.Id;
if (current == articleId)
console.log(this.Title);
//next
console.log(url.Article[i-1]);
//previous
console.log(url.Article[i+1]);
});
答案 2 :(得分:0)
像这样,添加验证以检查上一篇或下一篇文章是否存在。
$.each(url.Article, function (i, data) {
var currentId = data.Id;
if (currentId == articleId)
console.log(data.Title)
var previous = i > 0 ? url.Article[i-1] : null;
var next = url.Article.length > i+1 ? url.Article[i+1] : null;
});
答案 3 :(得分:0)
尝试
var p = $.grep(url.Article, function (data, i) {
return data.Id == articleId
&& url.Article.length === 3
? data : null
}, true), prev = p[0], next = p[1];
console.log(prev.Id, next.Id)