javascript - 如果值为真,则从循环中移除项目

标签 javascript ecmascript-6

我是 javascript 的新手,循环显示一个显示完整列表的列表,但是如果对象属性的属性设置为 true,我不想显示它。我无法弄清楚如果循环内部会发生什么,因为 popdelete 不起作用。

for (const user of users) {
                user.name = `${user.firstname}`;
                if (user.disabled === true) {
                    /* not sure what to do here*/
                }
            }

最佳答案

您想filtermap新对象(添加新属性 name)。 但是您可以使用 .reduce 而不是遍历数组两次在同一次迭代中过滤和映射对象。

运行示例:

const users = [
  {firstName: 'john', disabled: false},
  {firstName: 'jane', disabled: true},
  {firstName: 'moe', disabled: false},
  {firstName: 'doe', disabled: true},
];

const nextUsers = users.reduce((result, current) => {
  if(!current.disabled){
    result.push({
      ...current,
      name: current.firstName
    });
  }
  return result;
},[]);

console.log(nextUsers);

关于javascript - 如果值为真,则从循环中移除项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48511136/

相关文章:

javascript - 如何在node.js和ejs中提交表单而不刷新?

javascript - 将一些位操作从 javascript 转换为 c# --- if(int & #)

javascript - 什么会影响键盘焦点 html?

javascript - 为什么在表达式前使用 '!!' ?

javascript - 为什么我们必须在 es6 箭头函数中用括号包裹 throw

javascript - QuerySet 不是 JSON 可序列化的 Django

javascript - 如何仅在动态创建的字段上强制使用数字?

javascript - JavaScript 中的 "class fields"是什么?

javascript - 有没有办法有条件地更改 package.json 中的主条目文件?

javascript - 中断循环的 WebWorker