美好的一天。 我有一個全球陣列,它必須是全球性的。Array.Push覆蓋以前的值節點Js
var comments= [];
我有一個套接字的回調,我通過它迭代並添加值。
更好地與代碼:
socket.on('commentAdded', function (data) {
if (data !== null) {
var stringify = JSON.stringify(data);
var json = JSON.parse(stringify);
Object.keys(users).forEach(function (key) {
if (key !== "null") {
data.eachUserId = key;
console.log("data added with id " + key + " the size of comments is " + comments.size);
comments.push(data);
}
});
console.log("comment was added");
}
socket.broadcast.emit('onCommentAdded', data);
});
這裏我console.Log("data added with id)...
正確打印一切,理想我想添加一個新值到這是一個JSON數據和新值的名稱現有數據是eachUserId
哪個值必須完全不同,因爲我正在循環內部執行它,如你所見。
這裏是我如何得到後來的項目。
for (var f = 0; f < Object.keys(comments).length; f++) {
var comment = comments[f];
var eachUserId = comment.eachUserId;
console.log("checking with current user id" + userId + " each user id" + eachUserId + " or each user id in [] way " + comment['eachUserId']);
if (eachUserId === userId) {
socket.emit('onCommentAdded', comment);
}
}
這裏eachUserId始終是這是在環路中加入的最後一項...我在做什麼錯?爲什麼push()
方法會覆蓋每個值?
驚人!最好的解決方案,它的工作就像一個魅力! –