我在根据for循环中的值向对象添加属性和值时遇到问题。这是我的代码。
"use strict";
var chirper = {};
chirper.tweetsArray = [];
chirper.tweets = [];
chirper.friends = [];
chirper.friendsByName = [];
chirper.masterAjax = function (url, method, success, error, data) {
var request = new XMLHttpRequest();
request.open(method, url);
request.onload = function () {
if (this.status >= 200 && this.status < 400) {
if (success && typeof (success) == 'function') {
success(this.response, this.status);
}
}
else {
if (error && typeof (error) == 'function') {
error(this.response, this.status)
}
}
};
request.onerror = function () {
if (error && typeof (error) == 'function') {
error(this.response, this.status);
}
};
if (data) {
request.send(JSON.stringify(data));
}
else {
request.send();
}
};
这是我一次又一次使用的功能,具体取决于我需要获取或发布信息的位置。
chirper.getAllFriends = function () {
chirper.masterAjax('https://example-name.example.com/ccchirper/friends/.json', 'GET', function (response) {
var data = JSON.parse(response); for (var i in data) { chirper.friends.push(data[i]); chirper.friendsByName.push(data[i].userName)};
}, function (response, status) {
alert('Status: ' + status + '. Error message: ' + response);
});
};
chirper.getAllTweets = function () {
for (var i in chirper.friendsByName){
chirper.masterAjax('https://' + chirper.friendsByName[i] + '.example.com/ccchirper/tweets/.json',
'GET',
function (response) {
var data = JSON.parse(response);
for (var j in data) { data[j].name = chirper.friendsByName[i]; chirper.tweetsArray.push(data[j]);
};
},
function (response, status) {
alert('Status: ' + status + '. Error message: ' + response);
});
};
}
我一直在从控制台调用这些函数来测试它们。
我首先致电chirper.getAllFriends()
填充chirper.friendsByName
。它返回的一个例子是['andy','bob','john','tom']
返回后,我致电chirper.getAllTweets()
填充chirper.tweetsArray
然后我调用chirper.tweetsArray
并返回一个对象数组[obj,obj,obj]
这些对象中的每一个都是
obj
text: "blah blah blah'
image: "url.goes.here.com"
time: 124223534346
name: tom
每个对象都有正确的属性和值,但name属性始终获取chirper.friendsByName
数组中姓氏的值。
我想要发生的是来自&#39; andy&#39;应该得到名字&#39; andy&#39;,所有来自&#39; bob&#39;应该得到这个名字&#39; bob&#39;等