1
これはなぜ機能しないのですか? .map関数を使用してすべての配列コンテンツを文字列化
var numbers = [1,2,3,4,5,6,7,8];
var stringifiedNumbers = numbers.map(function(x) {
JSON.stringify(x);
})
console.log(stringifiedNumbers);
アレイ
これはなぜ機能しないのですか? .map関数を使用してすべての配列コンテンツを文字列化
var numbers = [1,2,3,4,5,6,7,8];
var stringifiedNumbers = numbers.map(function(x) {
JSON.stringify(x);
})
console.log(stringifiedNumbers);
アレイ
あなた[ 、不定不定、未定義、不定不定、未定義、未定義、未定義]ストリング化されたコンテンツを返さないので、関数は配列をに変換しますs。 Array#map
は渡されたコールバックの戻り値に基づいて、各配列要素を変換し、あなたが何も返さないので、それはundefined
にそれらを変換:
var numbers = [1, 2, 3, 4, 5, 6, 7, 8];
var stringifiedNumbers = numbers.map(function(x) {
return JSON.stringify(x);
})
console.log(stringifiedNumbers);
あなたはarrow functionsでこれを短縮することができます:
var stringifiedNumbers = numbers.map(x => JSON.stringify(x));
上記の例ではreturn文を1つしか使用していないため、矢印関数で式を暗黙的に返すことができます。
numbers.map(JSON.stringify);
これは暗黙的に引数を渡し、変数を取り除くためです。
シンプルな数値に 'JSON.stringify'を使用すると余計に過剰なようです。 'return x.toString()'を使うだけです。 – Jamiec