扩展运算符在项目中的一次应用

扩展运算符(…)

将一个数组转为用逗号分隔的参数序列。

console.log(...[1, 2, 3])
// 1 2 3

console.log(1, ...[2, 3, 4], 5)
// 1 2 3 4 5

[...document.querySelectorAll('div')]
// [<div>, <div>, <div>]


// 函数调用
function add(x, y) {
    return x + y
}
const numbers = [4, 6]
add(...numbers)  //10

// 可以放表达式
const arr = [...(x > 0 ? [1,2,3]: [4,5,6]), 7, 8]

空数组,不产生效果
[...[], 1]  // [1]
项目中的扩展符的应用

实现:后台返回不确定列,用于画表格。但是需要将:_ts, _seq, wtif, wfid放在前列显示,注意以上四个变量也是不确定的(即某个或几个变量可能没有)。

// items 结构:
"items": [{
            "WTUR_PwrAt_Ra_F32": 99.0,
            "WTPS_Temp_Ra_F32_Pbox3": 25.6,
            "_seq": 1,
            "wfid": 140604.0,
            "WGEN_Temp_Ra_F32_max": 38.89,
            "WTUR_Temp_Ra_F32": 19.89,
            "_ts": 1.471363211515E12,
            "wtid": 1.40604106E8
        }, {
            "WTUR_PwrAt_Ra_F32": 48.0,
            "WTPS_Temp_Ra_F32_Pbox3": 25.6,
            "_seq": 2,
            "wfid": 140604.0,
            "WGEN_Temp_Ra_F32_max": 38.42,
            "WTUR_Temp_Ra_F32": 19.89,
            "_ts": 1.471364423841E12,
            "wtid": 1.40604106E8
        }, {
            "WTUR_PwrAt_Ra_F32": 51.0,
            "WTPS_Temp_Ra_F32_Pbox3": 25.5,
            "_seq": 3,
            "wfid": 140604.0,
            "WGEN_Temp_Ra_F32_max": 38.38,
            "WTUR_Temp_Ra_F32": 19.79,
            "_ts": 1.471364521638E12,
            "wtid": 1.40604106E8
        },
        ...]

// Object.keys() 把对象展平为数组
const baseColumnDefs = Object.keys(items[0]).map(ele => ({
    headerName: ele,
    width: 50,
    field: ele,
    valueFormatter: ele === '_ts' ? dateRender : '',
    cellClass: 'call-record-cell',
    suppressSorting: true,
    suppressMenu: true,
    suppressColumnMoveAnimation: true,
    cellStyle: ele !== '_ts' ? {
      'text-align': 'right'
      // 'text-indent': '20px'
    } : {}
    }))
// manual sort
const _seq = baseColumnDefs.find(ele => ele.headerName === '_seq')
const _ts = baseColumnDefs.find(ele => ele.headerName === '_ts')
const wtid = baseColumnDefs.find(ele => ele.headerName === 'wtid')
const wfid = baseColumnDefs.find(ele => ele.headerName === 'wfid')
const sortArr = [
...(_seq ? [_seq] : []),
...(_ts ? [_ts] : []),
...(wtid ? [wtid] : []),
...(wfid ? [wfid] : [])
]
const others = R.without(sortArr)(baseColumnDefs)
columnDefs = [...sortArr, ...others]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值