Javascript 通过map()函数复制没有第一个对象的数组
这是我的密码Javascript 通过map()函数复制没有第一个对象的数组,javascript,arrays,copy,Javascript,Arrays,Copy,这是我的密码 var a = [0, 1, 2, 3, 4, 5]; var b = a.map((n) => { if (n !== 0) { return n; } }); 数组B必须复制数组A中的所有元素,但一个与条件不匹配的对象除外 结果:数组复制所有内容,并写入“未定义”,而不是0 应该是:数组B=[1,2,3,4,5] 改用Array#filter var a=[0,1,2,3,4,5]; 变量b=a.filter((n)=>{ 返回n!=
var a = [0, 1, 2, 3, 4, 5];
var b = a.map((n) => {
if (n !== 0) {
return n;
}
});
数组B必须复制数组A中的所有元素,但一个与条件不匹配的对象除外
结果:数组复制所有内容,并写入“未定义”,而不是0
应该是:数组B=[1,2,3,4,5] 改用Array#filter
var a=[0,1,2,3,4,5];
变量b=a.filter((n)=>{
返回n!==0;
});
控制台日志(b)代码>改用Array#filter
var a=[0,1,2,3,4,5];
变量b=a.filter((n)=>{
返回n!==0;
});
控制台日志(b)代码>我将使用扩展运算符,然后对新数组进行切片
var a = [0, 1, 2, 3, 4, 5];
var b = [...a].slice(1);
console.log(b); // [1, 2, 3, 4, 5]
在这种情况下,我不建议使用数组映射,因为没有理由遍历数组的每个元素。使用spread操作符,我们可以创建原始数组的完整副本,并对新副本进行变异以排除第一个元素
如果必须使用Array#filter方法,可以这样使用:
var a = [0, 1, 2, 3, 4, 5];
var b = a.filter((n, i) => {
if (i > 0) {
return n
}
});
console.log(b);
这将删除数组的第一个元素。我将使用扩展运算符,然后对新数组进行切片
var a = [0, 1, 2, 3, 4, 5];
var b = [...a].slice(1);
console.log(b); // [1, 2, 3, 4, 5]
在这种情况下,我不建议使用数组映射,因为没有理由遍历数组的每个元素。使用spread操作符,我们可以创建原始数组的完整副本,并对新副本进行变异以排除第一个元素
如果必须使用Array#filter方法,可以这样使用:
var a = [0, 1, 2, 3, 4, 5];
var b = a.filter((n, i) => {
if (i > 0) {
return n
}
});
console.log(b);
这将删除数组的第一个元素。var b=a.slice(1)
map
是错误的方法。再次检查可能的数组方法列表。还有一个名字听起来很明显:)我无权修改数组a,因此我使用copyslice()
不会修改原始数组。不过,我和Taplar的建议都不会修改数组。var b=a.slice(1)
map
是错误的方法。再次检查可能的数组方法列表。还有一个名字听起来很明显:)我无权修改数组a,因此我使用copyslice()
不会修改原始数组。不过,我和Taplar的建议都不会修改数组。