)私はハッシュとして時々(値を変更するために)、時には印刷することができるオブジェクトの配列を持っていると言います。JS:オブジェクトの配列を結合する(
a has a value and b has b value
または何-持っている - あなた:ここ
var test = { members : [] };
test.addMember = function(name, value) {
this.members[name] = { name : name, value : value };
this.members[name].toString = function() {
return this.name + " has a " + this.value; };
};
test.toString = function() {
return this.members.join(" and ");
};
test.addMember("a", "a value");
test.addMember("b", "b value");
alert(test);
私の目標は、test.toString()の戻りを持つことです。私はMDNを読んでいましたが、JavaScript 1.8.5(またはいくつかのサブリビジョン)がtoString()を呼び出すjoin()を持つようです。私は立ち往生ですか?
ありがとうございます!
編集:私の最終的なデザインは、変更と削除機能が含まれています(誰かが興味があった場合)!
var test = {
members : [],
modifyMember : function(name, value) {
var index = this.members.indexOf(this.members[name]);
if(index < 0) {
return;
}
this.members[index].value = this.members[name].value = value;
},
addMember : function(name, value) {
if(this.members[name]) {
this.modifyMember(name, value);
return;
}
this.members[name] = {
name : name,
value : value,
toString : function() {
return this.name + " has " + this.value;
},
};
this.members.push(this.members[name]);
},
removeMember : function(name) {
if(!this.members[name]) return;
this.members.splice(this.members.indexOf(this.members[name]), 1);
delete this.members[name];
},
toString : function() {
return this.members.join(" AND ");
}
};
か、むしろ 'aはAAを持っています値はbであり、値はbである。 – naveen
まあ...はい。それはまさに私が意味していたものです。 – mpw
私はsteweの答えとgilly3の答えの両方が好きです。 Steweはもう少し処理が必要で、gilly3はもう少しメモリを使います。私はgilly3を使用することに決めましたが、そのような迅速な回答を皆に感謝したいと思います。私の最初の質問をstackoverflowに投稿してくれてありがとう!乾杯! – mpw