가끔씩 (값을 변경하기 위해 어떨까요?) 때때로 액세스 할 수있는 객체 배열을 가지고 있다고합시다. 여기JS : 객체 배열에 join() -
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() 반환을하는 것입니다 :
a has a value and b has b value
또는 무엇을 가지고 - 당신은. 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 ");
}
};
또는 오히려이의'금주 모임을 가지고 값과 b는 ab 값을 가짐'? – naveen
음 ... 그렇습니다. 그것이 바로 제가 의미했던 것입니다. – mpw
나는 stewe의 대답과 gilly3의 대답을 좋아한다. Stewe는 좀 더 처리가 필요하고, gilly3은 메모리 사용량이 조금 더 많습니다. 나는 gilly3을 사용하기로 결정했지만, 빠른 답변을 주신 모든 분들께 감사 드리고 싶습니다. 내 첫 번째 질문을 stackoverflow에 게시 된 주셔서 고마워 다시 나를 다시 것입니다! 건배! – mpw