首页 > 解决方案 > 过滤来自两个对象的值

问题描述

好的,这似乎很简单,但不知何故,我在这里没有得到想要的结果。我有两个这样的对象:

const parentObj = { a: "true", b: "true", c: "true", d: "true", e: "true" }
const childObj = { b : "true", e: "true" }

我想比较这两个对象,找到公共键,并将公共键的值从childObjto赋值parentObj,这样我就得到了结果:

{ a: "false", b: "true", c: "false", d: "false", e: "true" }

我试过这个,但它不工作。

for (const parent in parentObj) {
    let valueFound = false;
    for (const child in childObj) {
        if (parent === child) {
            if (child === true) {
                parentObj[parent] = true;
                valueFound = true;
            }
        }
    }
    if (!valueFound) {
        parentObj[parent] = false;
    }
}

这里出了什么问题,正确的解决方案是什么?

标签: javascriptecmascript-6

解决方案


你的代码确实有效,如果你用. 或者比较你是否真的想要这些布尔值作为字符串。但是您的解决方案很慢,无需遍历 the和它的键,因为您可以查找:child === truechildchildObj[child] === true"true"childObj

  for(let key in parentObj)
    parentObj[key] = childObj[key] === "true" ? "true" : "false";

推荐阅读