3
我有一个对象数组。 (用例可能是单人纸牌)。我可以在JavaScript中使用自定义toString的对象数组吗?
我想嵌入一个toString来调试它们。
我使用以下(简化)来创建它们并将它们放入数组中。
var shuffledArray = [];
var myObj = {
a: "my val-a1",
b: "my val-b1",
init: function() {
this.toString = this.a + " of " + this.b;
return this;
}
}.init();
shuffledArray.push(myObj);
var myObj2 = {
a: "my val-a2",
b: "my val-b2",
init: function() {
this.toString = this.a + " of " + this.b;
return this;
}
}.init();
shuffledArray.push(myObj2);
mappableToString = function (element) {
return element.toString;
}
var shuffledArrayToString = shuffledArray.map(mappableToString);
console.log("shuffled array: " + shuffledArrayToString.join(", "));
我觉得我在做地图步骤时出了点问题。 toString
方法上我不能只是join
?
假设:
- 我的目标使用原始的Javascript,但我开到下划线或JQuery的。
你的代码的工作,你期待一个不同的结果? (https://jsfiddle.net/uw12xxyp/1/) –
我担心我没有使用最好的模式 - 或者错过了一些使它更复杂的东西。 – hawkeye
这样做的“功能”方法是创建函数'toString'和'concat',并按照相同名称的参数方法(或正确的中缀运算符),然后执行'.map(toString).reduce( concat)'FWIW,我发现你写的是更可读的惯用JS。 –