【发布时间】:2017-05-12 17:27:37
【问题描述】:
我有一个对象数组。 (用例可能是纸牌)。
我想嵌入一个 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,但我对 Underscore 或 JQuery 持开放态度。
【问题讨论】:
-
您的代码有效,您期待不同的结果吗? (jsfiddle.net/uw12xxyp/1)
-
我担心我没有使用最好的模式 - 或者错过了一些使它更复杂的东西。
-
执行此操作的“功能”方法是创建函数
toString和concat,它们遵循同名参数的方法(或正确的中缀运算符),然后执行@987654327 @FWIW,我发现你写的更易读的惯用 JS。
标签: javascript jquery arrays dictionary functional-programming