2020-04-21

1.折叠框做法
首先遍历出所有id,并且全部value值为true,点击i时把marketId传出去,取反


let slideStatus = Object.assign({}, this.slideStatus)
    this.marketList.map(item => {
      if (!this.slideStatus.hasOwnProperty(`${item.marketId}`)) {
        slideStatus[`${item.marketId}`] = true
      }
    })
 changeSlide (marketId) {
      if (!marketId) {
        return
      }
      this.slideStatus[marketId] = !this.slideStatus[marketId]
    }

2.数据转换


image.png
  res.data && res.data.forEach(x => {
            x.lines.forEach(v => {
              const finalMargin = v.options.reduce((per, cur) => per + cur.finalMargin, 0)
              const originalMargin = v.options.reduce((per, cur) => per + cur.originalMargin, 0)
              const finalPrice = v.options.reduce((per, cur) => per + (cur.finalPrice ? (1 / cur.finalPrice) : 0), 0)
              v.options = v.options.concat({ ...v.options[0], finalMargin: finalMargin.toFixed(2), optionTypeName: 'Total', originalMargin: originalMargin, originalPrice: '', marginAdj: v.totalMargin, finalPrice: finalPrice.toFixed(2) })
            })
          })

3.form Data传给后端

 const formData = new FormData()
 Object.keys(params).forEach(key => formData.append(key, params[key]))
  formData.append('matchType', this.activeName)

4.如何用js删除CSS属性?

const element = document.querySelector('h3)
h3.style.setProperty('color', 'initial')

5.Promise.prototype.finally()

**finally()** 方法返回一个Promise。在promise结束时,无论结果是fulfilled或者是rejected,都会执行指定的回调函数。这为在Promise是否成功完成后都需要执行的代码提供了一种方式。
这避免了同样的语句需要在then()catch()中各写一次的情况。

image.png

7.循环有三种

1.for循环:

for(let i=0 ;i<10; i++)

2.遍历一个对象(一下子全访问,没有停顿)

for(let key in object)

3.可迭代对象(一个一个的访问,中间是有停顿的)

for(let key of Object)

8.去重:new Set 一定注意new Set()会将结果转换成对象!没法去重元素是引用对象的数组


image.png
image.png

image.png

你可能感兴趣的:(2020-04-21)