這裏是關係到你的D3.js場景另一個答案,享受
// create a datastructure to hold your array like this
var ArrayHolder = function() {
var _array = [null, null, null];
var __nameIndexMap__ = {
"A": 0,
"B": 1,
"C": 2
};
Object.defineProperty(this, 'setData', {
value: function(name, value) {
var index = __nameIndexMap__[name];
if (index >= 0) {
_array[index] = value;
}
}
});
Object.defineProperty(this, 'array', {
get: function() {
return _array;
}
});
};
var myArray = new ArrayHolder();
console.log(myArray.array); // prints [null, null, null]
var i = 0;
function a() {
// provide each function a name
var __name__ = "A";
myArray.setData(__name__, i++);
}
a();
console.log(myArray.array); // prints [0, null, null]
function b() {
var __name__ = "B";
myArray.setData(__name__, i++);
}
b();
console.log(myArray.array); // prints [0, 1, null]
function c() {
var __name__ = "C";
myArray.setData(__name__, i++);
}
c();
console.log(myArray.array); // prints [0, 1, 2]
a();
console.log(myArray.array); // prints [3, 1, 2]
你有任何問題,或者你只是在尋求一個更好的* *方式做的東西? –
當!我很抱歉 !! 是的。所以我想確認我的方法是否正確。 以及如果有更好的方法呢? – Cerberus