1

私はJSの初心者で、持っているもので関数を実行する方法を理解するのに苦労しています..

関数:

function compressArray(original) {

    var compressed = [];
    // make a copy of the input array
    var copy = original.slice(0);

    // first loop goes over every element
    for (var i = 0; i < original.length; i++) {

        var myCount = 0;    
        // loop over every element in the copy and see if it's the same
        for (var w = 0; w < copy.length; w++) {
            if (original[i] == copy[w]) {
                // increase amount of times duplicate is found
                myCount++;
                // sets item to undefined
                delete copy[w];
            }
        }

        if (myCount > 0) {
            var a = new Object();
            a.value = original[i];
            a.count = myCount;
            compressed.push(a);
        }
    }

    return compressed;
};

以下のような多次元配列があり、3 番目の要素を取り出して関数を実行します。

var animalcount = [
        [2.8, 20, "dog, cat, bird, dog, dog"],
        [4.2, 22, "hippo, panda, giraffe, panda"],
        [3.7, 41, "snake, alligator, tiger, tiger"]
                ];

だから私は配列を以下のような単一の配列にする方法を理解しようとしています

var newArray1 = ("dog", "cat", "bird", "dog", dog");
var newArray2 = ("hippo", "panda", "giraffe", "panda");

または理想的には、多次元配列がそのまま維持できるように関数を微調整します。

4

2 に答える 2

2

これはちょっとローカライズされすぎていますが、このようなものです。

var newArray1 = animalcount[0][2].split(', ');
var newArray2 = animalcount[1][2].split(', ');
于 2013-10-17T18:04:05.377 に答える