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のために開いていますよ。あなたは、カスタムメソッド(とないプロパティ)でoverwrite the default
toString
methodに持って
あなたのコードが動作するには、あなたは異なる結果を期待していますか? (https://jsfiddle.net/uw12xxyp/1/) –
私は最良のパターンを使用していないか、もっと複雑なものを見逃してしまったのではないかと心配しています。 – hawkeye
これを行うための「機能的な」方法は、同じ名前(または適切な中置演算子)の引数のメソッドを継承する関数 'toString'と' concat'を作成し、 '.map(toString).reduce FWIW、私はあなたが読みやすい慣用句JSと書いたものを見つけます。 –