javascript - 如果满足某些条件,则循环对象并为对象数组赋值 - vanilla JavaScript

标签 javascript arrays object lodash

假设我有一个像这样的对象(这里可能有很多项目);

myObject:{
 item1: {
  visible: true;
 },
 item2: {
  visible: true;
 },
 item3: {
  visible: false;
 },
}

然后是一个像这样的对象数组(这里可能有很多项目);

var objs = [ 
    { name: 'item1', visible: false },
    { name: 'item2', visible: false },
    { name: 'item3', visible: false }
];

如何迭代对象并仅在名称匹配时将可见值分配给数组 - 如果对象中的 Item1 是visible: false,那么数组中的 item1 必须反射(reflect)这一点

最佳答案

最有效的方法是循环遍历数组,因为只需迭代数组一次。

const myObject = {
 item1: {
  visible: true
 },
 item2: {
  visible: true
 },
 item3: {
  visible: false
 }
};


var objs = [ 
    { name: 'item1', visible: false },
    { name: 'item2', visible: false },
    { name: 'item3', visible: false }
];

objs.forEach(obj => {
  const property = myObject[obj.name];
  if (property) {
    obj.visible = property.visible;
  }
});


console.log(objs);

关于javascript - 如果满足某些条件,则循环对象并为对象数组赋值 - vanilla JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53054569/

相关文章:

c++ - 'int' 的问题

javascript - 无法在 PHP 中访问 JSON 数组

javascript - 将 2 个属性值合并为一个

javascript: chop 数组中的对象属性

c# - JavaScript 和 C# 兼容的密码哈希

javascript - 将 yaml 字符串转换为 JSON 对象

Java 2D数组,可以设置单独的大小吗?

javascript - javascript对象的成员可以完全迭代吗?

javascript - 关闭当前标签

javascript - 通过在 codeigniter 中使用 jquery load 方法发布序列化数据