【小程序】3种方法获取数组的一部分 slice、for、filter结合indexOf

假定数组为8个:
["Python", "哈利·波特", "村上春树", "东野圭吾", "白夜行", "韩寒", "金庸", "王小波"]
我们现在要输出前4个
["Python", "哈利·波特", "村上春树", "东野圭吾"]
有以下3种方法

使用slice方法
  data: {
    maxLength: 4
  },
  
  attached() {
    keywordModel.getHot().then(
      (res) => {
        const hot = res.hot;
        // 3种方法获取数组的前面一部分
        // 1、用slice获取
        const hotdata = hot.slice(0, this.data.maxLength)
          this.setData({
            hotWords: hotdata
          })
        });
  }
使用for方法
  data: {
    maxLength: 4
  },
  
  attached() {
    keywordModel.getHot().then(
      (res) => {
        const hot = res.hot;
        // 3种方法获取数组的前面一部分
        // 2、用for循环获取
        const hotdata_a =[];
        for(let i=0; i<this.data.maxLength; i++){
          hotdata_a.push(hot[i])
        }
          this.setData({
            hotWords: hotdata_a
          })
        });
  }
使用filter结合indexOf方法
  data: {
    maxLength: 4
  },
  
  attached() {
    keywordModel.getHot().then(
      (res) => {
        const hot = res.hot;
        // 3种方法获取数组的前面一部分
        // 3、用filterindexOf获取
        const hotdata_b = hot.filter((x, index,self) => {
          return self.indexOf(x) < this.data.maxLength
        })
          this.setData({
            hotWords: hotdata_b
          })
        });
  }
comments powered by Disqus