見出し画像

思いのほか進まないです GAS

まぁそういう日もありますよね。

こんにちは!サキナオコです^^
雨が降るのかと思いきや晴れたり、と思ったら雨が降りそうになったり…
洗濯物をどうすれば良いのか非常に悩むお天気です。

いつもご覧いただき、スキ、フォロー、コメントまで、
本当にほんとうにどうもありがとうございます!!*^o^*
おかげさまで、今日投稿やめとこうかな〜というぬるい気持ちに勝てました!!^o^/

本日はあの有名なArrayオブジェクトですね。配列を取り扱うオブジェクトです。いよいよきましたね!Arrayオブジェクト!!さあモチベーションを上げていきましょう。

このArray オブジェクトのメソッド群は3種類あるとのこと。
*アクセサメソッド*配列自体を書き換えずメソッドに応じた戻り値を返す
*変更メソッド*配列自体を書き換える 「破壊的なメソッド」ともいう
*反復メソッド*配列内、各要素に対しての処理

ちょっとちょっと!変更メソッドは元の配列を破壊するのですね!
「破壊的なメソッド」映画か何かのタイトルみたいでもあり、パンクっぽくもあり。なんだかかっこいい…興味津々です。

GASで取り扱うデータは直接操作よりも配列に格納して処理した方が処理速度がとっても向上するそうです。配列、はずせないですね。

Arrayオブジェクトの主なメンバーの表(1ページと少し)を見てめまいがしましたが、正気を保っていきましよう。

全部を読む前にサンプルから写経してみます。
アクセサメソッドと反復メソッドはありましたが、肝心の破壊的なメソッドのサンプルがないじゃないですか!

これはいけません。自力で書きます。
といっても表の引数変えるだけですけど…

function myFunction_8_23_1() {
 const array = ['Saki','Naoko','Monty','Naoko'];

 console.log(array.length);

 console.log(array.toString());
 console.log(array.join('|'));

 console.log(array.concat(['Java'])); // (連結)
 console.log(array.slice(1,3)); // 	[ 'Naoko', 'Monty' ]

 console.log(array.includes('Naoko')); // true
 console.log(array.indexOf('Naoko'));  // 1 (配列内検索)
 console.log(array.lastIndexOf('Naoko')); // 3 (配列内検索)
// 破壊的なメソッド
 console.log(array.push('Python')); // 5(末尾に追加 エレメント数) 
 console.log(array); // [ 'Saki', 'Naoko', 'Monty', 'Naoko', 'Python' ]
 console.log(array.splice(3,1,'Pretty')); // [ 'Naoko' ] (抜いたエレメントが表示されてる)
 console.log(array); // [ 'Saki', 'Naoko', 'Monty', 'Pretty', 'Python' ]
 console.log(array.copyWithin(1,2)); // [ 'Saki', 'Monty', 'Pretty', 'Python', 'Python' ]
 console.log(array); // [ 'Saki', 'Monty', 'Pretty', 'Python', 'Python' ](ホントだ!すっかり変わっちゃってるyo!)

 const array2 = ['Saki',['Naoko'],[['Monty']]];
 console.log(array2.flat()); //[ 'Saki', 'Naoko', [ 'Monty' ] ]
 console.log(array2.flat(2));  //[ 'Saki', 'Naoko', 'Monty' ]
}

なるほど、すっかり元の配列を破壊してしまってますね。
確かに気をつける必要があります。激しいです。取り扱い注意ですね。

おや…あとのページで変更メソッドのサンプルがありました…なんだぁ…

はい…これだけでなんなんですけど、今日はここまで!

しばらくひたすら写経が続きそうでモチベーションの維持対策をなんとかしなくては、です。

この記事が気に入ったらサポートをしてみませんか?