「アウトプットと言う名の備忘録@Texas」

日本じゃない何処かの脳筋パイソニスタによる何かしらの走り書き

【Python/JavaScript比較】PythonディベロッパーがJavaScriptを始めてみた結果:List/Array編

f:id:At_sashimi_py:20190628092554p:plain
Webに特化したJavaScriptと学術分野に特化したPython

JavaScript始めました。

というのもPythonでWebAppなどを作っているとやっぱりどうしても避けては通れないというか
手を出したくなる魅力があるというか、むしろ知らないといけないのではというのが動機です。

さすがはWeb開発で大人気のJavaScript

便利で、とても優秀。
DOMでHTMLいじくれるのもとても快感。

Google Chrome Extension もJavaScriptが使えれば作れるので、欲しい機能があれば、さくっと作れるのも魅力的。
(作るのが楽しくて、車輪の再発明をしがち)

PythonJavaScript:似て異なるモノ

もともとはPython大好き人間のかつJavaScript初心者の私。
JavaScriptを書く時は、だいたい頭の中ででPython Scriptを書いて変換して書いております。

使われる分野は違えど、PythonJavaScriptも同じScript言語、個人的に文法も似ているものと認識しています。

ただ書き方がやや異なるので今回はその辺について備忘録的に書き残していこうと思います。(毎回調べるのもアレなので)

今回はPythonListJavaScriptArrayの書き方の比較を記していこうと思います。(そこはそうじゃなくてこっちの方が正しいよー!もしくはもっといい方法あるよー!というかたはコメントいただけると幸いです!)

対象読者

Pythonの知識はまぁまぁあるが、JavaScriptは初心者。

PythonのListとJavaScriptのArray

何はともあれ、List/Arrayの基本的なところから見ていきましょう。
Pythonでの基本的なListの書き方。

name_list = ['John', 'Mark', 'Jane']

次に、JavaScriptの基本的なArrayの書き方。

var nameArray = ['John', 'Mark', 'Jane' ];

まず何をするにしても、変数を

var

で宣言します。
で変数の書き方は「nameArray」のようにキャメルケース🐪🐫
そしてPythonのリストのように記述し、

最後にセミコロン”;” ! !

と、基本はそこまで深掘りせず、早速、PythonのListとJavaScriptのArrayを比較していきましょう!

List/Arrayへの要素の追加

【末尾】Python: append() と JavaScript: push()

何か新しい要素をList/Arrayの最後に付け加えたい時
Pythonであればappend()を使います。

#python
name_list = ['John', 'Mark', 'Jane']
name_list.append('Emma')
print(name_list)
# output
# [ 'John', 'Tim', 'Jane', 'Emma' ]

一方、JavaScriptの場合はpush()を代わりに使います。

//javascript
var nameArray = ['John', 'Mark', 'Jane' ];
nameArray.push('Emma');
console.log(nameArray);
// output
// [ 'John', 'Tim', 'Jane', 'Emma' ]
【先頭】Python: insert() と JavaScript: unshift()

新しい要素をList/Arrayの先頭にに付け加えたい時
Pythonでは末尾以外に要素を付け足す場合には、insert()を使ってあげる必要があります。

#python
name_list.insert(0, 'Kate')
print(name_list)
# output
# ['Kate',  'John', 'Tim', 'Jane', 'Emma' ]

一方、JavaScriptにはそれ用のunshift()が存在します!

//javascript
nameArray.unshift('Kate');
console.log(nameArray);
// output
// [ 'Kate', 'John', 'Tim', 'Jane', 'Emma' ]
【任意】Python: insert() と JavaScript: splice()

任意の箇所に要素を付け足したい場合
Pythonであれば、既出のinsert()の第一引数に挿入したい位置を指定します。

#python
name_list.insert(2,'Sam')
print(name_list)
# output
#['Kate', 'John', 'Sam', 'Tim', 'Jane', 'Emma']

そしてJavaScriptの場合はsplice()で、第一引数に挿入したい位置をPython同様指定します。第二引数には、削除する要素の数をしてすることができますが、今回は削除では無く挿入なので'0'を指定します。そして第三引数に追加したい要素を記入します。

//javascript
nameArray.splice(2,0,'Sam')
console.log(nameArray)
// output
//['Kate', 'John', 'Sam', 'Tim', 'Jane', 'Emma']

List/Arrayの要素の取得

PythonではよくListの中の要素を取り出して使ったり、Listの長さを取得したり、とListの情報を取得したい場合が多々あります。それはJavaScriptでも同様にありけり。です。

【任意】PythonJavaScriptほぼ同じ

これはPythonJavaScriptも同じですね。
List/Array名の後に"[0から始まる任意の位置]"

#python
print(name_list[1])
# output
#John
//javascript
console.log(nameArray[1]);
// output
//John
【List/Arrayの長さ】Python: len() とJavaScript: length
#python
print(len(name_list))
# output
#5
//javascript
console.log(nameArray.length);
// output
//5
【Slice】指定した位置から、複数の値をを取得

PythonのListにおけるSliceはList名の後に任意の範囲を[1:3]のように始点と終点のIndexを、コロンを挟む形で指定します。この際終点は含まれません。

#python
#[ 'Jane', 'John', 'Kate', 'Sam', 'Tim' ]
slice_1 = name_list[1:3]
slice_2 = name_list[2:]
print(slice_1)
print(slice_2)
# output
#['John', 'Kate']
#['Kate', 'Sam', 'Tim']

一方JavaScriptの場合はslice(始点,終点)で範囲を指定します。
Python同様、終点は範囲に含まれません。

//javascript
//[ 'Jane', 'John', 'Kate', 'Sam', 'Tim' ]
slice1 = nameArray.slice(1,3);
slice2 = nameArray.slice(2,);
console.log(slice1)
console.log(slice2)
// output
//[ 'John', 'Kate' ]
//[ 'Kate', 'Sam', 'Tim' ]

と、まぁこのくらい分かればなんとかなるかなArrayに関しては。個人的に。

とりあえずArrayはこのくらいにして、

今後また、PythonでいうIf構文やForループ、Function、ClassのJavaScriptバージョンをまとめていけたらなと思います(自分のためにも)。

それでは

皆さんの良きPython/JavaScriptライフを祈っております!

ありがとうございましたー!