js填充数组,而不是替换为值

时间:2020-04-21 07:33:20

标签: javascript

我的目标是从数组开始 空值比其他值 数组具有相应的条目替换 只是作为例子

const a = [...[null,null,null, null], ...[1,2,3,4]]

我想要一个数组 [1,2,3,4]

在开始时,第二个数组也可能是空的

const a = [...[null,null,null, null], ...[]]

const a = [...[null,null,null, null], ...[1]]

以此类推....

const a = [null,null,null, null];
const b = [1,2,3];
const c = a.map((item,i)=> b[i] ? b[i] : a[i])

有更好的方法吗?

2 个答案:

答案 0 :(得分:1)

您可以将Object.assign以数组作为目标,并获取更新的值,这些值在相同的索引/键处。

这也适用于稀疏数组。

const a = [null, null, null, null];
const b = [1, 2, 3, , 5];

// creating new, rather than mutating
const c = Object.assign([], a, b); 

console.log(c); // [1, 2, 3, null, 5]

答案 1 :(得分:0)

检查一下。只是一个简单的for循环。我使用Number.isNaN进行验证。如果需要验证其他类型的值,则可以使用其他验证。

    const a = [null,null,null, null];
    const b = [1,2,3];

    let c=[...a]
    for (let i = 0; i < b.length; i++) {
        if(!Number.isNaN(b[i])){
            c[i]=b[i]
        }
    }

这是输出:

[1,2,3,null]

相关问题