用另一个数组或javascript | 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
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函数的行为完全避免了数组中的漏洞,我对此感到惊讶。