に繰り返してarray.map使用して:私は私は、次のしているこんにちはJavascriptを
ような何かをしようとしていますa = [11,22,33]
:私は、この配列を更新したいと思います
var a = [1, 2, 3]
を
a.map(repeat(2));
ただし、エラーになります。
私はこれを簡単にループすることができますが、より簡潔なコードを使用して練習しようとしています。
これは可能でしょうか?
に繰り返してarray.map使用して:私は私は、次のしているこんにちはJavascriptを
ような何かをしようとしていますa = [11,22,33]
:私は、この配列を更新したいと思います
var a = [1, 2, 3]
を
a.map(repeat(2));
ただし、エラーになります。
私はこれを簡単にループすることができますが、より簡潔なコードを使用して練習しようとしています。
これは可能でしょうか?
数字を文字列に変換し、値を繰り返して番号に変換することができます。
var a = [1, 2, 3]
a = a.map(a => +a.toString().repeat(2));
console.log(a);
数字の繰り返しが必要な場合は、文字列を使用します。この目的のために便利なrepeat
methodを持っている:
function repeat(times) {
return x => String(x).repeat(times);
}
a.map(repeat(2)).map(Number)
:あなたの表記を使用したい場合は、あなたが
map
コールバックとして使用されるように、別の関数を返す高階
repeat
機能を確認する必要があり
a.map(x => Number(String(x).repeat(2))));
はい可能です。
function repeat(times) {
return function (value) {
return +String(value).repeat(times);
}
}
// Your code:
var a = [1, 2, 3];
var result = a.map(repeat(2));
console.log(result);
map
メソッドは、引数としての機能を期待し、そうrepeat(2)
への呼び出しは、関数を返す必要があります:あなたは、関数を返す関数としてrepeat
定義することができます。その(内部)関数は、値を文字列に変換した後にString#repeat
を使用し、結果をunary +
で数値に戻します。
単に、Array join() methodでそれを試してみてください。
ここa.map(x => Array(2).join(x));
あなたが行く、number
バージョンとstring
バージョン
const doubleIt = n => Number(`${n}${n}`);
const arr = [1, 2, 3, 55];
const strArr = arr.map(o => `${o}${o}`);
const numArr = arr.map(o => o * 11);
const numFromStringsArr = arr.map(o => doubleIt(o));
console.log(strArr);
console.log(numArr);
console.log(numFromStringsArr);
あなたは
var a = [1, 2, 3], n = 2;
a = a.map(el => +Array(n).fill(el).join(""));
console.log(a);
+
演算子を使用し、パラメータとして
""
とチェーン
Array.prototype.join()
、
.map()
コールバックの現在の要素で作成された配列を埋めるために
Array.prototype.fill()
を使用し、
Array()
とN
.length
の配列を作成することができます
IEのどのバージョンでも 'fill'はサポートされていないことに注意してください。 – Andy
@Andyしばらく使っていない。 'Array.prototype.fill'のためのいくつかのpolyfillがあり、githubまたはgithubで利用できます – guest271314
私もあなたと同じような答えに取り組んでいて、MDNの互換性テーブルをチェックしました。言及する価値があると思った。 – Andy
オブジェクトは文字列または数字として必要ですか? –
'let x = 2; a.map(e => e *((1 << x)-1).toString(2)); 'あなたが望むくらい頻繁に繰り返す。 – ASDFGerte
私は実際に文字列としてオブジェクトが必要です。私はそれを動作させるfiを見るためにtoStringを実行しようとします。 – rycankun