【问题标题】:How do I replace in a javascript array? [duplicate]如何在 javascript 数组中替换? [复制]
【发布时间】:2020-12-01 21:08:10
【问题描述】:

给定

const allPost = [{_id: "uniqueId1", "name": "Bob"}, {_id: "uniqueId2", "name": "Sam"}]
const changeTo = {_id: "uniqueId1", "name": "Tim"}

我想更改为给定的 allPost 对象,使其变为

const allPost = [{_id: "uniqueId1", "name": "Tim"}, {_id: "uniqueId2", "name": "Sam"}]

我试过了,但它不起作用

const allPost = [{_id: "uniqueId1", "name": "Bob"}, {_id: "uniqueId2", "name": "Sam"}]
const changeTo = {_id: "uniqueId1", "name": "Tim"}
const newPost = allPost.filter((post) => {
    if(post._id === changeTo._id) {
        post = changeTo
    }

})

无论如何要做到这一点?

【问题讨论】:

    标签: javascript arrays


    【解决方案1】:

    Ciao,你可以像这样使用map 函数:

    const allPost = [{_id: "uniqueId1", "name": "Bob"}, {_id: "uniqueId2", "name": "Sam"}]
    const changeTo = {_id: "uniqueId1", "name": "Tim"}
    const newPost = allPost.map((post) => {
        if(post._id === changeTo._id) return changeTo;
        else return post;
    });
    console.log(newPost);

    【讨论】:

    • 嗯,“你不能改变allPost的内容”?使用 const 关键字不会使数组不可变。你需要稍微改一下那个短语。
    • 越简单越好...无论如何,如果您尝试使用 sn-p 直接在 const allPost 中制作地图,您将收到错误“您无法更改 const”...
    猜你喜欢
    • 2018-11-05
    • 1970-01-01
    • 2018-08-31
    • 2019-08-05
    • 1970-01-01
    • 1970-01-01
    • 2014-02-14
    • 1970-01-01
    • 2018-02-24
    相关资源
    最近更新 更多