Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取子数组中的项并放回主数组_Javascript_Arrays_Destructuring - Fatal编程技术网

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

Javascript 获取子数组中的项并放回主数组,javascript,arrays,destructuring,Javascript,Arrays,Destructuring,当通过javascript获取子数组中的项并将其放回主数组时,我遇到了一个问题。 我有这样的数组: var array_demo = [ ['1st', '1595', '8886'], ['2nd', '1112'] ] 我想得到这样的结果: ['1595'、'8886'、'1112'] 但当我使用此代码时: array_demo.map(function(i) { return i.slice(1).join(); }); 结果:['15958886','1112

当通过javascript获取子数组中的项并将其放回主数组时,我遇到了一个问题。 我有这样的数组:

var array_demo = [
    ['1st', '1595', '8886'],
    ['2nd', '1112']
]
我想得到这样的结果:
['1595'、'8886'、'1112']

但当我使用此代码时:

array_demo.map(function(i) {
    return i.slice(1).join();
});
结果:
['15958886','1112']

有人能帮我吗?

代替
join()
map()的返回结果上使用:

var数组\u演示=[
['1st','1595','8886'],
['2nd','1112']
]
array\u demo=array\u demo.map(函数(i){
返回i.slice(1);
}).flat();

日志(数组_演示)您可以在不使用第一个元素的情况下分解数组的结构,并使用

var数组=[[1st'、[1595'、[8886']、[2nd'、[1112'],
结果=数组.flatMap(([,…a])=>a);

控制台日志(结果)
您可以使用
Array.prototype.flat
后跟
Array.prototype.filter
来清除子数组中的非数字数据:

var数组\u演示=[
['1st','1595','8886'],
['2nd','1112']
];
常量res=array_demo.flat().filter(n=>!isNaN(n));

控制台日志(res)您也可以使用
数组。减少
,并按如下方式使用它:

array_demo.reduce( function(prev, curr, index) {
  return prev.concat(curr.slice(1)); 
} ).slice(1);
实际上,array.map返回数组中每个元素的结果。因此,在您的示例中,它有两个周期:

  • ['1st','1595','8886']->返回'15958886',因为您使用了join()
  • ['2nd','1112']->返回'1112',这也是因为您使用了join()
  • 在一个数组中->['15958886','1112'].

    array\u demo.reduce((acc,array\u element)=>acc.concat(array\u element.slice(1)),[]))

    使用

    var数组\u演示=[
    ['1st','1595','8886'],
    ['2nd','1112']
    ]
    var reduced_array=array_demo.reduce((reducedArray,elem)=>{
    elem.shift()//删除第一项
    返回还原数组concat(elem)
    }, [])
    
    log(reduced_array)
    当我们需要单个累积值时,我们可以使用reduce函数

    var数组\u演示=[
    ['1st','1595','8886'],
    ['2nd','1112']
    ]
    var l=数组\u demo.reduce((val,项)=>{
    返回值concat(项目切片(1));
    },[]);
    
    控制台日志(l)我认为这是最干净的方法。谢谢你的帮助,喜欢你的答案,而且速度非常快。谢谢你的帮助,它工作得非常好,但是正确的答案太多了,我不知道哪里是最好的,所以我选择了更快的答案。最后,非常感谢。非常、非常清楚地感谢您,并向我显示错误,但正确答案太多,因此我应该为更快的答案打绿色勾。是的,您应该接受最适合您的答案谢谢您的答案,但非常抱歉,因为我无法为您打绿色勾,正确答案太多。最后,非常感谢你花时间帮助我。:)不用担心,只要选一个最干净的;)非常感谢你的帮助非常感谢你的帮助