这几天都在温习数组的知识,回头看看,才发现这么忘记那么多,当然也重新学到东西。所以就这几天学到的东西进行一个总结。
1.判断某个值是否在一个数组里除了有query的$.inArray()之外还可以用js自带的some函数。
var array = [1, 2, 3, 45, 5]
var num = 2;
var or = array.some(function (item, index, arrays) {
if (item == num) {
return index;
}
})
console.log(or);//返回true
例子里根据or返回true就知道这个array里有num这个值,if(or){}就可以往下进行其他步骤。
2.数组快速循环,除了forEach之外还有map函数可以进行遍历操作数组。
data: {
mapt:[{ "name": "珊珊", "age": 24, "status": 1 },
{ "name": "小熊", "age": 28, "status": 2 },
{ "name": "文哥", "age": 25, "status": 3 },
{ "name": "欧少", "age": 24, "status": 1 },
{ "name": "小珍", "age": 24, "status": 1 }]
},
onLoad: function (options) {
var that = this;
this.data.mapt.map(function (item, index) {
if (item.status == 1) {
item.getData = "红色";
} else if (item.status == 3) {
item.getData = "蓝色"
} else {
item.getData = "黑色"
}
})
that.setData({ mapt: that.data.mapt });
},
上面map的案例是用于增加数组的项(目前我本人只用于vue.js的数组添加及小程序数组项的添加),最终生成是
mapt:[{ "name": "珊珊", "age": 24, "status": 1,"getData":"红色" },
{ "name": "小熊", "age": 28, "status": 2,"getData":"黑色" },
{ "name": "文哥", "age": 25, "status": 3,"getData":"蓝色" },
{ "name": "欧少", "age": 24, "status": 1,"getData":"红色" },
{ "name": "小珍", "age": 24, "status": 1 ,"getData":"红色"}]
当然,map函数也可以修改数组已有的项的内容,类似的操作。
说到这里,我想说一下我在研究map时看到帖子的array.map(parseInt)的问题,这个让我又涨知识了。
array = ["1", "2", "3", "4", 5, 6, 7, 8, 9, 10];
array.map(parseInt);//得到的结果是1,undefined......
为什么会出现这个问题呢?主要是因为parseInt里面有两个参数,第二个参数是基数而且最大值是(2~36),如果你看到这不懂的话可以百度一下这个哦,我这就不详细说了。
那遇到这个问题我们该怎么解决呢?看下:
var array = ["1", "2", "3", "4", 5, 6, 7, 8, 9, 10];
var list = [];
array.map(function (item, index) {
item = parseInt(item);
list.push(item)
});
array = list;
console.log(array)
这样就可以得到转换后的数据。
3.截取函数其中的一部分,并且不改变原数组,可以用slice。这个我就不做太多总结,因为简单。
4.还是说一下判断今天是星期几的吧,之前我都是用if else 但是这个很麻烦,虽然可以实现,后面学到一个数组简单的写法
var array = ["周日", "周一", "周二", "周三", "周四", "周五", "周六"]
var week = array[new Date(res.detail.orderDate).getDay()]
这两天得到的大概就是这些知识点,希望你们看见也能跟我一样用起来哦!