学习笔录一
1.表格里参数值对应设置里的值显示
<template slot-scope="scope">
<div>
{{scope.row.kyyuser.appname|parseByOptions(option.kyy_packagename)}}
</div>
</template>
2.lodash的_.merge(object, [sources])用法
$ npm i -g npm
$ npm i --save lodash
var _ = require('lodash');
var object = {
'a': [{ 'b': 2 }, { 'd': 4 }]
};
var other = {
'a': [{ 'c': 3 }, { 'e': 5 }]
};
_.merge(object, other);
// => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }
3._.assign(object, [sources])
分配来源对象的可枚举属性到目标对象上。 来源对象的应用规则是从左到右,随后的下一个对象的属性会覆盖上一个对象的属性。
4.Object.assign()的使用
4.1 Object.assign()对象的拷贝
Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。
Object.assign(target, …sources) 【target:目标对象】,【souce:源对象(可多个)】
4.2 对象的合并
const o1 = { a: 1 };
const o2 = { b: 2 };
const o3 = { c: 3 };
const obj = Object.assign(o1, o2, o3);
console.log(obj); // { a: 1, b: 2, c: 3 }
console.log(o1); // { a: 1, b: 2, c: 3 }, 注意目标对象自身也会改变。
其实就是对象的拷贝,o1就是目标对象,后面的是源对象,后面的属性等会拷贝到目标对象
4.3 合并具有相同属性的对象
const o1 = { a: 1, b: 1, c: 1 };
const o2 = { b: 2, c: 2 };
const o3 = { c: 3 };
const obj = Object.assign({}, o1, o2, o3);
console.log(obj); // { a: 1, b: 2, c: 3 }
1.属性被后续参数中具有相同属性的其他对象覆盖。
2.目标对象的属性与源对象的属性相同,源的会覆盖目标的属性
5.Object.entries() 遍历对象中key value
Object.entries()方法返回一个给定对象自身可枚举属性的键值对数组,其排列与使用 for…in 循环遍历该对象时返回的顺序一致(区别在于 for-in 循环还会枚举原型链中的属性)。
for (const [key,val] of Object.entries(datas)) {
console.log(key)
console.log(val)
if(typeof val.dailySignInRewardConfig.reward === 'string'){
let arr = val.dailySignInRewardConfig.reward.split(",")
val.dailySignInRewardConfig.reward = arr.map(item => parseInt(item))
}
}
let arr = []
for(let [key,value] of Object.entries(c_data.detail)){
if(key.split('_')[0] === 'thumbnail' && value != ''){
arr.push(value)
}
6.字段自增,自减
const flow = await this.ctx.model.Flow.findOne({ where: { art_id } });
await flow.increment('index', { by: 900 });
字段自减
const flow = await this.ctx.model.Flow.findOne({ where: { art_id } });
await flow.decrement('index', { by: 900 });
7.Vue子组件调用父组件的方法
this.$parent.fatherMethod(); //方法名
8. 关于数组
渲染data里数据:
data: [
{value: 1048, name: '搜索引擎'},
{value: 735, name: '直接访问'},
{value: 580, name: '邮件营销'},
{value: 484, name: '联盟广告'},
{value: 300, name: '视频广告'}
],
定义一个数组 然后遍历塞进去
const series = [];
for (let item of data) {
series.push({ value: item.amount, name: item.channel });
}
this.initChart(series);
es6 map用法
let arr = channels.map(item => item.channel)
es6 Object.keys()取key值,
Object.values() 取值并返回数组形式
const a = "818测试": {
"channel": "818测试",
"accessuser": 56,
"accessnewuser": 1,
"accessnumber": 56,
"add_desktop": 4
},
"渠道1": {
"channel": "渠道1",
"accessuser": 10,
"accessnewuser": 0,
"accessnumber": 10,
"add_desktop": 4
},
"渠道2": {
"channel": "渠道2",
"accessuser": 4,
"accessnewuser": 0,
"accessnumber": 4,
"add_desktop": 2
},
"渠道3": {
"channel": "渠道3",
"accessuser": 11,
"accessnewuser": 5,
"accessnumber": 11,
"add_desktop": 8
}