Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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 通过map()函数复制没有第一个对象的数组_Javascript_Arrays_Copy - Fatal编程技术网

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,因此我使用copy
slice()
不会修改原始数组。不过,我和Taplar的建议都不会修改数组。
var b=a.slice(1)
map
是错误的方法。再次检查可能的数组方法列表。还有一个名字听起来很明显:)我无权修改数组a,因此我使用copy
slice()
不会修改原始数组。不过,我和Taplar的建议都不会修改数组。