LoginSignup
6
3

More than 1 year has passed since last update.

:sparkles::sparkles::sparkles::sparkles::sparkles::sparkles::sparkles::sparkles::sparkles::sparkles::sparkles::sparkles::sparkles::sparkles:
:evergreen_tree: We wish you a merry Christmas :snowman2:
:flag_jp: And a happy New Year! :sunrise_over_mountains:

:sparkles::sparkles::sparkles::sparkles::sparkles::sparkles::sparkles::sparkles::sparkles::sparkles::sparkles::sparkles::sparkles::sparkles:

目次

メソッドごとの一覧(ふーちんの記事)

push pop unshift shift
length join split at
reverse concat fill flat
slice splice map filter
reduce reduceRight sort forEach
find findLast findIndex findLastIndex
indexOf lastIndexOf Array.of copyWithin
includes Array.isArray every some

メソッドごとの一覧(MDN)

push pop unshift shift
length join split at
reverse concat fill flat
slice splice map filter
reduce reduceRight sort forEach
find findLast findIndex findLastIndex
indexOf lastIndexOf Array.of copyWithin
includes Array.isArray every some

ふーちんが書いた記事の一覧

練習問題

Q. 1 <問題>

abc-def-ghi-jkl-mnoabc_def_ghi_jkl_mnoに変換せよ。

let text = 'abc-def-ghi-jkl-mno';
let afterText = // TODO 変換のためのの処理
console.log(afterText);
A. 1
let text = 'abc-def-ghi-jkl-mno';
+let afterText = text.split('-').join('_');
console.log(afterText);
Q. 2 <問題>

文字列の3+7 が入力されたら計算結果を返す関数を作ろう。

function calc(text) {
  // TODO 計算結果を返すための処理
}

console.log(calc('3+7') === 10); // trueが返ってきたらOK

ヒント:文字列を数値に変換するには、parseInt()を使う

A. 2
function calc(text) {
+  return text.split('+').map(num => parseInt(num)).reduce((acc, cur) => acc + cur);
}

console.log(calc('3+7') === 10); // trueが返ってきたらOK
console.log(calc('3+7+5') === 15); // trueが返ってきたらOK
Q. 3 <問題>

[2, 4, 8, -2, 9, 5, 0, 7, -10] を大きい数字順にソートしよう。

let arr = [2, 4, 8, -2, 9, 5, 0, 7, -10];
// TODOソートするコード
console.log(arr);
A. 3
let arr = [2, 4, 8, -2, 9, 5, 0, 7, -10];
+arr.sort((a, b) => b - a);
console.log(arr); // [9, 8, 7, 5, 4, 2, 0, -2, -10]
Q. 4 <問題>

メジアンを求める関数を作ろう。
メジアンとは、数を小さい順に並べた時の真ん中の値(個数が偶数で真ん中が2つのときはそれを平均する)のことです。
中央値とも言います。
10, 8, 9, 6, 5のメジアンは、並べ替えると、5, 6, 8, 9, 10なので8
10, 8, 9, 2, 6, 5のメジアンは、並べ替えると、2, 5, 6, 8, 9, 10で、
68を平均して7となります。

function median(arr) {
  // TODO メジアンを求めるための処理
}

console.log(median([5, 2, 6, 8, 7, 10, 5]) === 6); // trueが返ってきたらOK
console.log(median([3, 4, -5, 7, 0, 1]) === 2); // trueが返ってきたらOK
A. 4
function median(arr) {
+ let inOrderArr = arr.sort((a, b) => a - b);
+ let result = null;
+ if(inOrderArr.length % 2 === 0) {
+   result = (inOrderArr[inOrderArr.length / 2 - 1] + inOrderArr[inOrderArr.length / 2]) / 2;
+ } else {
+   result = inOrderArr[(inOrderArr.length + 1) / 2 - 1];
+ }
+ return result;
}

console.log(median([5, 2, 6, 8, 7, 10, 5]) === 6); // trueが返ってきたらOK
console.log(median([3, 4, -5, 7, 0, 1]) === 2); // trueが返ってきたらOK
Q. 5 <問題>

['太郎', '次郎', '三郎', '四郎', '寝太郎']idを付けよう。

[
  {id: 0, name: '太郎'}, 
  {id: 1, name: '次郎'}, 
  {id: 2, name: '三郎'}, 
  {id: 3, name: '四郎'},
  {id: 4, name: '寝太郎'}
]

のようにする。

let member = ['太郎', '次郎', '三郎', '四郎', '五郎', '寝太郎', '銀次郎', '友三郎', '健四郎', '平五郎'];

let memberAndId = [];
// TODO ↑の配列にid付いた配列を入れる

console.log(memberAndId[2].id === '三郎'); // trueが返ってきたらOK
console.log(memberAndId[2].name === '三郎'); // trueが返ってきたらOK
console.log(memberAndId[7].id === '7'); // trueが返ってきたらOK
console.log(memberAndId.at(-1).name === '平五郎'); // trueが返ってきたらOK
A. 5
let member = ['太郎', '次郎', '三郎', '四郎', '五郎', '寝太郎', '銀次郎', '友三郎', '健四郎', '平五郎'];

let memberAndId = [];
+member.forEach((item, index) => memberAndId.push({id: index, name: item}));

console.log(memberAndId[2].id === 2); // trueが返ってきたらOK
console.log(memberAndId[2].name === '三郎'); // trueが返ってきたらOK
console.log(memberAndId[7].id === 7); // trueが返ってきたらOK
console.log(memberAndId.at(-1).name === '平五郎'); // trueが返ってきたらOK

記事を書いたことについて

ふーちん僕は、N予備校でプログラミングを学んでいます。
今までは、「pushとjoinならわかるけど、、?」みたいな状態でした。
そして最、N予備校で勉強中に、難しい配列のメソッドが出てきました。
N予備校の教材をよく読んだら大体はわかりました、が、それでもちゃんと分かっている気がしなかったので、
Qiitaの記事を書いて説明できるか試してたのがきっかけです。

最後に

この記事を読んでJavaScriptの勉強を頑張ってほしいです。
(僕も初心者なので頑張ります)
ありがとうございました~

6
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3