0

次のような配列があるとしましょう。

"I", "am", "", "still", "here", "", "man"

これから、次の2つの配列を作成したいと思います。

"I", "am", "still", "here", "man"

 0, 1, 3, 4, 6

したがって、空の文字列のない配列だけでなく、空でない文字列の配列インデックスを持つ配列もあります。これら 2 つの配列を最初から作成するには、どのような方法がよいでしょうか?

アップデート:

2 つの配列が生成された後、最初の配列はそのまま必要です。

4

3 に答える 3

2

配列をループして、各要素が空かどうかを確認します。そうでない場合は、その位置をある配列に追加し、その値を別の配列に追加します。

var elems, positions
for (var i = 0; i < arr.length; i++){
    if (arr[i] != ""){
        elems.push(arr[i])
        positions.push(i)
    }
}

編集:これにより、3つの配列(元、要素、位置)が残ります。元のものを変更するだけの場合は、arr.filter()

于 2013-08-07T20:36:05.550 に答える
1
var nonEmptyStrings = [];
var nonEmptyIndices = [];
["I", "am", "", "still", "here", "", "man"].forEach(function (str, i) {
    if (str != '') {
        nonEmptyStrings.push(str);
        nonEmptyIndices.push(i);
    }
});
于 2013-08-07T20:38:56.203 に答える