获取子数组中的项目并放回主数组

Ngh*_*han 13 javascript arrays

当在子数组中获取项目并通过javascript返回主数组时,我遇到了问题。我有这样的数组:

var array_demo = [
    ['1st', '1595', '8886'],
    ['2nd', '1112']
]
Run Code Online (Sandbox Code Playgroud)

我想得到这样的结果: ['1595','8886','1112']

但是当我使用此代码时:

array_demo.map(function(i) {
    return i.slice(1).join();
});
Run Code Online (Sandbox Code Playgroud)

结果: ['1595,8886', '1112']

有人能帮我吗 ?

Nin*_*olz 13

您可以对数组进行解构,并在不包含第一个元素的情况下取出其余部分,并使用展平此数组Array.flatMap

var array = [['1st', '1595', '8886'], ['2nd', '1112']],
    result = array.flatMap(([_, ...a]) => a);

console.log(result);
Run Code Online (Sandbox Code Playgroud)

或者Array.slice()也可以。

var array = [['1st', '1595', '8886'], ['2nd', '1112']],
    result = array.flatMap(a => a.slice(1));

console.log(result);
Run Code Online (Sandbox Code Playgroud)

  • 我认为这是最干净的方法。 (2认同)

Mam*_*mun 5

而不是join()用于Array.prototype.flat()的返回结果map()

var array_demo = [
    ['1st', '1595', '8886'],
    ['2nd', '1112']
]
array_demo = array_demo.map(function(i) {
    return i.slice(1);
}).flat();
console.log(array_demo);
Run Code Online (Sandbox Code Playgroud)

在一个使用Arrow函数(=>)的衬里中:

var array_demo = [
    ['1st', '1595', '8886'],
    ['2nd', '1112']
]
array_demo = array_demo.map(i => i.slice(1)).flat();
console.log(array_demo);
Run Code Online (Sandbox Code Playgroud)