相关疑难解决方法(0)

如何为JavaScript Set自定义对象相等性

新的ES 6(Harmony)引入了新的Set对象.Set使用的身份算法类似于===运算符,因此不太适合比较对象:

var set = new Set();
set.add({a:1});
set.add({a:1});
console.log([...set.values()]); // Array [ Object, Object ]
Run Code Online (Sandbox Code Playgroud)

如何自定义Set对象的相等性以进行深层对象比较?有没有像Java这样的东西equals(Object)

javascript set ecmascript-harmony

142
推荐指数
5
解决办法
3万
查看次数

如何迭代 Map() 对象?

我有一个需要迭代的 Map() 对象,因此我可以获得星期几和选定的小时。下面的代码不起作用,因为Object.keys(newFieldReservationPrice).forEach它试图循环一个 Map() 对象,这似乎没有意义。那么,有没有更好的解决方案呢?

这是下面的代码:

handlePriceInput = (e, hour, day) => {
let value = e.target.value

const newFieldReservationPrice = this.state.newFieldReservationPrice
console.log('newFieldReservationPrice', newFieldReservationPrice) // A Map();
let map;

if (!newFieldReservationPrice instanceof Map) {
  console.log('!== Map')
  console.log('newFieldReservationPrice is a Map()? inside if ()', newFieldReservationPrice)
  if (newFieldReservationPrice[day] && newFieldReservationPrice[day][hour]) {
      newFieldReservationPrice[day][hour] = Number(value)
  } 
} else {
  map = new Map();
  console.log('map object', Object.keys(newFieldReservationPrice)) // logs map object []

  Object.keys(newFieldReservationPrice).forEach(key => {
    console.log('key', key)
      map.set(key, new Map(Object.entries(newFieldReservationPrice[key])));
  }); // This …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs

2
推荐指数
3
解决办法
6085
查看次数

标签 统计

javascript ×2

ecmascript-harmony ×1

reactjs ×1

set ×1