当我实际上看到的是myStrings时,我在调用此函数时希望['A','B','C','D','E','F','G']['A', 'B', 'G']。当进行递归调用时,a[i]等于[['C','D'],'E','F'],但是该函数将接收整个myArray。有任何想法吗?

var myArray = ['A','B',[['C','D'],'E','F'],'G'];

var myStrings = [];

function extractStrings(a) {

    for(var i=0; i<a.length; i++) {

        if(typeof a[i] === 'string') {
            myStrings.push(a[i]);
        } else if (typeof a[i] === 'object') {
            extractStrings[a[i]];
        }
    }
}

extractStrings(myArray);
console.log(myStrings);

最佳答案

这是一个简单的错字:

extractStrings[a[i]];


应该:

extractStrings(a[i]);


Demonstration

09-03 21:15