javascript - 如果在映射数组中,则将对象推送到选中 : true, 的新数组

标签 javascript node.js

我能得到一些关于这个场景的帮助吗?

  1. 字符串数组
  2. 一个映射字符串数组并为每个字符串应用一个名称、键并再添加一个对象“checked: false”的函数。
  3. 一个函数,它接受映射数组并根据传递的参数对其进行转换,将值存储到另一个数组并将“checked”更改为值“true”

例如:

const defaultProducts = [
    "Laptop",
    "Tablet",
    "Phone",
    "Ram",
    "SSD",
    "RasberyPi",
    "Desktop",
    "TV",
    "Monitor"
  ];

const getDefaultProducts = () => {
return defaultProducts.map(products => {
    return {
    name: products,
    checked: false
    };
});
};

console.log(getDefaultProducts())

let forSale = []
function useProduct(product){
  if(product in getDefaultProducts()) {
    return{
      product: forSale.push(product), 
      checked: true
    };
  };
    return {product};
}

console.log(useProduct("Laptop"))
console.log(forSale)


returns 

[ { name: 'Laptop', checked: false },
  { name: 'Tablet', checked: false },
  { name: 'Phone', checked: false },
  { name: 'Ram', checked: false },
  { name: 'SSD', checked: false },
  { name: 'RasberyPi', checked: false },
  { name: 'Desktop', checked: false },
  { name: 'TV', checked: false },
  { name: 'Monitor', checked: false } ]
{ product: 'Laptop' }
[]

应该返回:

[ { name: 'Laptop', checked: false },
  { name: 'Tablet', checked: false },
  { name: 'Phone', checked: false },
  { name: 'Ram', checked: false },
  { name: 'SSD', checked: false },
  { name: 'RasberyPi', checked: false },
  { name: 'Desktop', checked: false },
  { name: 'TV', checked: false },
  { name: 'Monitor', checked: false } ]
{ product: 'Laptop' }
[{name:"Laptop", checked: true}]

最佳答案

在您检查条件的部分,if product in getDefaultProducts () 将不起作用,因为 getDefaultProducts 是一个对象数组。您正在将字符串与每个对象进行比较,例如:

 "Laptop" === { name: "Laptop", checked: false }

这将始终返回 false。相反,您可以使用查找功能:

function useProduct(product){
  getDefaultProducts().find(el => {
    if (el.name === product) {
      el.checked = true
      forSale.push(el)
    }
  });
  return product;
}

关于javascript - 如果在映射数组中,则将对象推送到选中 : true, 的新数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59435562/

相关文章:

javascript - 无法将多背景颜色应用于 Material ui snackbar

javascript - 统计 Meteor 中帖子的评论数

json - 将对象从 MongoDB 游标流式传输到 Nodejs HTTP 响应

javascript - setInterval 与 jquery.idle

javascript - onchange使用ajax在表行中追加数据

javascript - 如何使用 JQuery 递归地为 DOM 子级设置样式值?

javascript - 防止 npm 私有(private)组织发布公共(public)包

node.js - 从 AWS lambda 函数写入 dynamodb

javascript - Discord.js permissionOverwrites 不起作用但完全没有错误

node.js - Firebase Cloud Storage getSignedUrl 过期日期不能是过去的(Firebase Cloud Functions)