アプリ版:「スタンプのみでお礼する」機能のリリースについて

いつもお世話になっています^^;
例えば[[0, 1], [2, 3]]という二次元配列の全要素の全要素を区切り文字無しで連結して、
'0123'という文字列を得るにはどのように書けばよろしいですか。
join('')だと'0,12,3'となってしまいます。

A 回答 (3件)

こんにちは



一例です。

 alert( [[0, 1], [2, 3], [4, 5]].flat().join `` );
とか。
    • good
    • 0
この回答へのお礼

flat()恥ずかしながら初めて知りました。
シンプルで素晴らしい!

お礼日時:2023/06/09 13:11

余談だけど、余力があるなら平坦化関数(flatten)の書き方を覚えておいてもいいかも。


JavaScriptなら次のようになるのかな。

function flatten(v) {
 if (v.length == 0) {
  return v;
 } else if (Array.isArray(v)) {
  return flatten(v[0]).concat(flatten(v.slice(1)));
 } else {
  return [v];
 }
}
    • good
    • 0
この回答へのお礼

flat()の内部処理が分かりました。
ただしEdgeでも2020年にはflat()が完全サポートされているようですので、本件においては自作しなくても、ほぼ全てのユーザーをカバーできる事が分かりました。

お礼日時:2023/06/09 21:55

const array = [[0, 1], [2, 3]];


const result = array.flat().join('');
console.log(result); // 0123


`flat()`メソッドは、配列の各要素を再帰的にフラット化します。つまり、二次元配列のすべての要素を一次元配列に平坦化します。その後、`join()`メソッドを使用して、すべての要素を単一の文字列に連結します。`join()`メソッドの引数は、文字列の区切り文字です。ここでは、空文字列を指定し、区切り文字なしですべての要素を連結しています。
    • good
    • 0
この回答へのお礼

flat().join('')
皆さん口をそろえて同じ提案をされる事から、この方法が本件の常とう手段と認識しました!

お礼日時:2023/06/09 13:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!