パスワードを忘れた? アカウント作成
473683 journal

okuの日記: Re: JavaScriptの配列

日記 by oku

builder by ZDNet Japanとても”奇妙”なJavaScriptの配列:JavaやCとは違うのだよ より:

JavaScriptの配列は、JavaやCとは全く違うデータ構造だ。このことは、JavaやCの経験が元々ある人の方が気づきにくいかもしれません(僕がそうでした)。

KornShell の配列に似ている」と書けば「ああ!」と反応する人がそれなりにいるかも知れません。 例えば:

$ set -A a 1 2 3 4
$ echo "${#a[@]}: ${a[@]}"
4: 1 2 3 4
$ a[1000]=500
$ echo "${#a[@]}: ${a[@]}"
5: 1 2 3 4 500
$ echo ${a[1000]}
500
$

# bash の場合は、set の行を declare 形式に置き換えればよい筈。

もっとも、KornShell には「JavaScriptの配列をも~っと深く理解する:lengthの不思議な動作」で解説されているような length プロパティに相当するものはありません。 敢えて言うと、KSH-93 で追加された${!a[@]}length に近いかも知れません。

# とは言え、自分の知る限り KSH-93 を同梱している商用 Unices ベンダは皆無なのですが。
# Linux や *BSD の場合はそもそも入っていないか、入っていても pdksh だったり。

追記:

${!a[@]}展開は、最近の bash にも実装されているようです (手元で試した限りでは 3.x 以降か)。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

私はプログラマです。1040 formに私の職業としてそう書いています -- Ken Thompson

読み込み中...