使用es6刺激对象键并从对象的1行中提取值吗?

时间:2019-05-23 03:07:10

标签: javascript arrays reactjs object

我有一个带有一行键并有值的对象。 我正在尝试映射这些键并显示值。

   productObj = {id:0, name:"toy", price:10, description:null, inventory:7 }

   productObj.map((product, index) => { 
      if(product.inventory > 0){
       return(
          <div>Product Inventory: {product.inventory}</div>
        );
      }
      if(product.description){
        return(
          <p>{product.description}</p>
        );
      }
    })

这是我要完成的工作的一个示例。

我用过:

  const keys = Object.keys(productObj)

我能够映射键值数组。

但是,这意味着我将不得不重新使用原始对象来获取键的值。

我确定有更好的方法可以做到这一点?谢谢。

1 个答案:

答案 0 :(得分:0)

如果需要键和值,可以使用Object.entries

return Object.entries(productObj).filter(x => x[1]).map(([k,v]) => <div>{`k:{v}`}</div>)

“使用上面的示例。if(venture> 2)是否可以实现此if语句。Reduce”

您可以创建具有不同按键的对象,这些按键具有不同按键的功能。

const obj = {
   invetory:a => a > 2
}
return Object.entries(productObj)
            .filter(([k,v]) => obj[k] ? obj[k]() : x[1])
            .map(([k,v]) => <div>{`k:{v}`}</div>)