鍍金池/ 問答/HTML/ 嵌套數(shù)組的截取

嵌套數(shù)組的截取

var arr=[
    [11,12,13,"內(nèi)容","內(nèi)容2"],
    [21,22,23,"內(nèi)容","內(nèi)容2"],
    [31,32,33,"內(nèi)容","內(nèi)容2"]
];
var arr2=[
    [11,12,13],
    [21,22,23],
    [31,32,33]
];

想向各位大佬求一個(gè)簡(jiǎn)單的方法,arr的每一項(xiàng)截取前三位得到的結(jié)果如arr2
想到的方法只有自己新建一個(gè)空數(shù)組,處理數(shù)據(jù)之后,放到arr2中

回答
編輯回答
孤酒

這種一一映射的數(shù)據(jù)處理,可以使用 map,處理數(shù)據(jù)的邏輯放到 map 的回調(diào)函數(shù)中就好了,比如:

arr2 = arr.map(function(e){
    return e.slice(0, 3)
})

這樣寫,不僅邏輯清晰,可讀性高,而且始終返回新的數(shù)組,不會(huì)修改舊的數(shù)組,所以具有純函數(shù)的特性。

2017年6月1日 04:33
編輯回答
厭惡我
arr.forEach(value => {
  value.splice(3);
});

這樣是直接修改原來的arr

let arr2 = arr.map(value => {
  return value.slice(0,3);
});

這樣既不更改原來的數(shù)組,新數(shù)組是滿足要求的

2017年11月27日 03:31
編輯回答
愛礙唉
var arr2 = arr.map(cur => cur.slice(0, 3))
// 或者使用Array.from
arr2 = Array.from(arr, item => item.slice(0, 3))
2017年1月30日 23:46