前端数组函数巧妙运用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34672907/article/details/78444481


这几天都在温习数组的知识,回头看看,才发现这么忘记那么多,当然也重新学到东西。所以就这几天学到的东西进行一个总结。

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()]
这两天得到的大概就是这些知识点,希望你们看见也能跟我一样用起来哦!

猜你喜欢

转载自blog.csdn.net/qq_34672907/article/details/78444481