我想将来自 resnews
的每个响应连接到名为 newsObj.getNews
的 ojbect 属性。
API 在页面首次加载时调用,并在我们向下滚动时继续加载。我想将每个传入响应(限制为 10)添加到对象属性。
现在每次调用 API 时,它都会与 newsObj.getNews
中的数据重叠,并且只显示 10 个。
$.ajax({
method: 'GET',
url: url,
data: newsParams,
success: function(resnews) {
// app.preloader.hide();
if(resnews.status == 'ok') {
if(type=="relevancy"){
newsObj.getNews = resnews.articles; // overlapping my response
console.log(typeof resnews.articles); //returns object
_self.renderNewsInUIAppend(resnews.articles, type)
} else {
newsObj.popular = resnews.articles;
console.log(typeof newsObj);//returns object
_self.renderNewsInUIAppend(resnews.articles, type);
}
} else {
console.warn("There was error fetching error.");
}
}
})
我对 newsObj.getNews
的回复
最佳答案
typeof []
将给出“对象”,因为数组是一个对象
console.log(typeof [])
可以从here中找到解释
并且您正在循环对象数组以显示数据。所以你可以像下面这样将新数据与旧数据连接起来
var latestNews;
var newsObj = {};
var resNews = {};
resNews.articles = [{id: 1}, {id: 2}];
// At first newsObj.getNews is undefined like below
console.log(newsObj.getNews);
// So you need to do like below
if (typeof newsObj.getNews !== "undefined") {
latestNews = newsObj.getNews.concat(resNews.articles);
newsObj.getNews = latestNews;
} else {
newsObj.getNews = resNews.articles;
}
console.log(newsObj.getNews);
// New news
resNews.articles = [{id: 3}, {id: 4}];
setTimeout(function () {
latestNews = newsObj.getNews.concat(resNews.articles);
newsObj.getNews = latestNews;
console.log(newsObj.getNews);
}, 1000);
关于javascript - 将每个传入响应连接到对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52246803/