Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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 |数组中的另一个元素替换数组中的空元素_Javascript_Arrays - Fatal编程技术网

用另一个数组或javascript | javascript |数组中的另一个元素替换数组中的空元素

用另一个数组或javascript | javascript |数组中的另一个元素替换数组中的空元素,javascript,arrays,Javascript,Arrays,假设我有一个javascript数组,包含以下内容 let arr = [1, 2, , 4]; // [1, 2, empty, 4] arr[5] = 6; // [1, 2, empty, 4, empty, 6] 如您所见,arr变量在第2和第4位置有一个空值。我想用提供的数组填充这些空值,就像 let replace_empty_with = [3, 5]; 因此,首先,我想知道数组是否有空值,所以我使用以下方法 arr.includes(undefined); // or Obj

假设我有一个javascript数组,包含以下内容

let arr = [1, 2, , 4]; // [1, 2, empty, 4]
arr[5] = 6; // [1, 2, empty, 4, empty, 6]
如您所见,arr变量在第2和第4位置有一个空值。我想用提供的数组填充这些空值,就像

let replace_empty_with = [3, 5];
因此,首先,我想知道数组是否有空值,所以我使用以下方法

arr.includes(undefined);
// or
Object.values(arr).length == arr.length 
现在,如何用replace_empty_with array变量的值填充原始数组(arr变量)的空值

所需输出 arr=[1,2,3,4,5]

我尝试使用数组的forEach函数来了解特定元素是否有未定义的值或空值,但没有成功


另外,我尝试使用indexOf查找数组的第一个未定义元素,但它总是返回-1作为indexOf(未定义)-表示数组中没有未定义的元素。

可以像这样使用一个简单的for循环:

让arr=[1,2,4];//[1,2,空的,4]
arr[5]=6;//[1,2,空,4,空,6]
让我们用=[3,5]替换_empty_;
设nextPos=0
对于(设i=0;i=用.length替换_empty_)break
}
}

console.log(arr)
可以像这样使用一个简单的for循环:

让arr=[1,2,4];//[1,2,空的,4]
arr[5]=6;//[1,2,空,4,空,6]
让我们用=[3,5]替换_empty_;
设nextPos=0
对于(设i=0;i=用.length替换_empty_)break
}
}
log(arr)
您已经创建了一个(带孔的数组)。数组方法,如
Array.forEach()
Array.map()
跳过此漏洞

当原始数组中不存在当前索引(
i
)时,可以使用
Array.from()
迭代稀疏数组,并通过从
replace\u empty\u中获取值来生成新数组:

const arr=[1,2,4];//[1,2,空的,4]
arr[5]=6;//[1,2,空,4,空,6]
const将_empty_替换为=[3,5];
常量结果=数组。从(arr,(v,i)=>arr中的i?
v
:
将_empty_替换为.shift()
)
控制台日志(结果)您已经创建了一个(带孔的数组)。数组方法,如
Array.forEach()
Array.map()
跳过此漏洞

当原始数组中不存在当前索引(
i
)时,可以使用
Array.from()
迭代稀疏数组,并通过从
replace\u empty\u中获取值来生成新数组:

const arr=[1,2,4];//[1,2,空的,4]
arr[5]=6;//[1,2,空,4,空,6]
const将_empty_替换为=[3,5];
常量结果=数组。从(arr,(v,i)=>arr中的i?
v
:
将_empty_替换为.shift()
)

控制台日志(结果)
您可以使用
中的
操作符来检测阵列中的孔

对其进行迭代,然后填充:

让arr=[1,2,4,6]
让我们用=[3,5]替换_empty_

对于(设i=0;i您可以使用
in
操作符来检测阵列中的孔

对其进行迭代,然后填充:

让arr=[1,2,4,6]
让我们用=[3,5]替换_empty_

对于(设i=0;i,您可以在阵列具有孔之前使用
..
扩展运算符,将孔转换为
未定义的

执行此操作后,可以使用
Array.prototype.map
检查是否存在
未定义的
值,如果找到,则使用替换数组中的值替换该值:

让arr=[1,2,4];//[1,2,empty,4]
arr[5]=6;//[1,2,空,4,空,6]
让我们用=[3,5]替换_empty_;
函数replacempty(arr,replacer){
返回[…arr].map(e=>e==undefined?replacer.shift():e);
}

console.log(replaceEmpty(arr,replace_empty_with));
您可以在阵列具有孔之前使用
..
扩展运算符,将孔转换为
未定义的

执行此操作后,可以使用
Array.prototype.map
检查是否存在
未定义的
值,如果找到,则使用替换数组中的值替换该值:

让arr=[1,2,4];//[1,2,empty,4]
arr[5]=6;//[1,2,空,4,空,6]
让我们用=[3,5]替换_empty_;
函数replacempty(arr,replacer){
返回[…arr].map(e=>e==undefined?replacer.shift():e);
}

log(replaceEmpty(arr,replace_empty_with));
您可以进行循环并检查是否有一些元素可添加到数组中

let array=[1,2,4],
替换=[3,5];
for(设i=0;replace.length;i++){
如果(数组中的i)继续;
数组[i]=replace.shift();
}

log(数组);
您可以进行循环,检查是否有一些元素可添加到数组中

let array=[1,2,4],
替换=[3,5];
for(设i=0;replace.length;i++){
如果(数组中的i)继续;
数组[i]=replace.shift();
}

console.log(array);
正在键入相同的内容,以秒数击败我:)正在键入相同的内容,以秒数击败我:)我喜欢arr中的
I
检查。我喜欢arr中的
I
检查。总的来说,我想我已经尝试了forEach和indexOf,但有更多方法可用于检测数组中的空元素。forEach和indexOf函数的行为完全避免了数组中的漏洞,这让我感到惊讶。总的来说,我想我已经尝试了forEach和indexOf,但是有更多的方法可以检测数组中的空元素。forEach和indexOf函数的行为完全避免了数组中的漏洞,我对此感到惊讶。