有关箭头符号“=>”,在箭头之后跟着一个小括号“()”代表返回小括号中的值,意思就是返回,如果跟着一个大括号“{}”,就代表一个对象。
const test = [{
index: 0
}, {
index: 1
}, {
index: 2
}, {
index: 3
}, {
index: 4
}]
const newData = test.map(value => (value.index - 1))
console.log('newData: ' + newData)
如上所示,在小程序中定义一个数组,然后遍历修改数据,那么最后会输出的值是“newData: -1,0,1,2,3”,通过array.map方法遍历了数组中的每一个对象,然后将它的属性index的值减去1,最后通过“()”遍历返回,就得到了一个新的数组。如果要返回一个对象,那么可以这么写:
const test = [{
index: 0
}, {
index: 1
}, {
index: 2
}, {
index: 3
}, {
index: 4
}]
const newData = test.map(value => ({
index: value.index - 1
}))
console.log('newData: ' + newData)
再小括号之中放一个大括号,就代表返回一个对象。
********************************************************2019.4.24************************************************
JS的padding踩坑:JS和android有些属性的效果是不一样的,今天就遇到了padding的问题。在android中如果一个控件设置了具体的宽高值,然后再设置padding,那么该控件就会自动内间距,宽高不变,内部的内容自动向内压缩。而在JS中,如果设置padding,即使之前已经设置了固定的宽高值,控件的宽高也会自动增大,而内容的内容位置不变。
简单来说,如果一个text控件,宽高是100X100,padding值是10,那么在android中它的宽高还是100X100,文本内容和边的距离为10,但在JS中,它的宽高就会变成120X120,然后文本内容和边的距离为10,如果想要解决这个问题,实现和android一样的效果就要添加一个新属性:box-sizing: border-box,然后就会正常了。
********************************************************2019.5.22************************************************
在小程序之中,如果想要水平居中,除了使用display:flex的方法之外,还有几种可用的手段:
1.margin:0 auto可以使块级元素居中,如果不是块级元素,用display:block可以将其转为块级元素。
2.text-align:center可以使块级元素中的内联元素居中,只有对内联元素有效。
所以不同的元素需要用不同的方法来使它水平居中。