這隻要工程確定它們僅僅是 一個條目被添加到數組中, 我添加了多個值,在其他的 單詞中該函數將運行幾個 時間然後我想發送整個數組的 ,但這似乎只是 將使用逗號 分隔符添加所有內容。
林不知道你在這裏說什麼。我之前給出的第二個示例假設每個uid
都有一個x,y對,但對_tags
中有多少個uid
沒有限制。這就是爲什麼var _tags = {};
是功能的一部分 - 所以它是一個全局變量。
以下修改將允許你有多個X,Y對每個uid
:
function add_tag_queue(uid,x,y){
/*
* detect if _tags[uid] already exists with one or more values
* we assume if its not undefined then the value is an array...
* this is similar to doing isset($_tags[$uid]) in php
*/
if(typeof _tags[uid] == 'undefined'){
/*
* use an array literal by enclosing the value in [],
* this makes _tags[uid] and array with eah element of
* that array being a hash with an x and y value
*/
_tags[uid] = [{'x':x,'y':y}];
} else {
// if _tags[uid] is already defined push the new x,y onto it
_tags[uid].push({'x':x, 'y':y});
}
}
這應該工作:
function add_tag_queue(uid,x,y){
_tags.push([uid, x,y]);
}
如果你想uid
爲重點那麼你需要使用一個對象/散列不是array
var _tags = {}; // tags is an object
function add_tag_queue(uid,x,y){
_tags[uid] = {'x':x,'y':y};
}
這工作正常,只要他們只有一個條目被添加到數組中,我添加了多個值,換句話說該函數將運行幾次,然後我想發送整個數組,但這似乎只是用逗號分隔符添加所有內容。 – Brian 2010-12-03 05:51:11