如何向数组Javascript中的项目添加嵌套

如何向数组Javascript中的项目添加嵌套,javascript,arrays,Javascript,Arrays,因此,如果我想从数组项中删除嵌套,我绝对可以这样做: var nestedArrs = [[1],[2],[3],[4],[5]]; var denestedArr = [].concat.apply([], nestedArrs); console.log(denestedArr) //prints [1, 2, 3, 4, 5]; 但是如果我需要倒回去添加嵌套呢 var unnestedArr = [7, 8, 9, 10]; var nestedArr = [] ? // Say I w

因此,如果我想从数组项中删除嵌套,我绝对可以这样做:

var nestedArrs = [[1],[2],[3],[4],[5]];
var denestedArr = [].concat.apply([], nestedArrs);
console.log(denestedArr) //prints [1, 2, 3, 4, 5];
但是如果我需要倒回去添加嵌套呢

var unnestedArr = [7, 8, 9, 10];
var nestedArr = [] ? // Say I want to add nesting to every other item in arr
console.log(nestedArr); //so I wanted it to print [[7], 8, [9], 10]
//& nested Arr needs to be based upon the starting unnestedArr.
var unnestedar=[7,8,9,10];
var nestedArr=unnestedArr.map(函数(项,索引){
返回索引%2==0?[项目]:项目;
});
console.log(nestedArr)与的类似,我建议使用。
如果你不喜欢“硬编码”这个“每隔一次”的决策标准,你可以做出一个选择

const unnestedar=[7,8,9,10];
//在这里,我们定义应该嵌套哪些项
常数isEven=x=>x%2==0;
常量nestCriteria=(项目,索引)=>isEven(索引);
const shouldBeNested=unnestedar.map(nestCriteria);//=[真,假,真,假];
//接下来,我们对上面标识的项目执行嵌套
const nestedArr=unnestedArr.map((项目,索引)=>{
退货应收款[索引]?[项目]:项目;
});
//或者,我们也可以使用“一个大功能”,如下所示:
const nestedArr2=unnestedArr.map((项目,索引)=>{
如果(索引%2==0){
返回[项目];
}
否则{
退货项目;
}
});
//如果我们想就地修改阵列(而不是创建新阵列)
//我们本可以用.forEach代替.map并修改(变异)
//感兴趣的元素(例如,将它们包装在数组中)

日志(unnestedar、nestedArr、nestedArr2)