当前位置: 首页 > 知识库问答 >
问题:

javascript - js中一个数组取其中的几项?

太叔坚
2023-07-13

通过v-for遍历数据
比如目前返回了长度为10的数据
arr = [0,1,2,3,4,5,6,7,8,9]
如果取前3项
通过 index > 3就能搞定
现在我想取其中的 1 4 7
怎么处理呢?

看了大家的回答 直接是取 1 4 7
那如果数组长度为20或者更长不是很不灵活
我的想法是如何实现类似3n-2的等差数列算法来取值

共有4个答案

顾穆冉
2023-07-13

建议用computed来获取想要的数据:

<template>
    <div v-for="item in data" :key="item">
        {{ item }}
    </div> 
</template>

<script setup>
    import { ref, computed } from "vue";
    const arr = ref([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]);
    const data = computed(() => {
        return arr.value.reduce((acc, it) => {
            const i = acc.length + 1;
            if (3 * i - 2 === it) acc.push(it);
            return acc;
        }, []);
    });
</script>
童化
2023-07-13

这类问题一般filter解决

袁志专
2023-07-13

很简单啊,通过 filter 搭配 includes 来实现。

var arr = [0,1,2,3,4,5,6,7,8,9]
var result = arr.filter((val, ind) => [1,4,7].includes(ind))
console.log(result)
// log => Array(3) [ 1, 4, 7 ]

Edit

哦,原来在 v-for 中使用啊,一样的。

<div v-for="(val, ind) in arr.filter((val, ind) => [1,4,7].includes(ind))" :key="val">
  {{ ind }} - {{ val }}
</div> 

当然用1楼的使用 v-if 来判断也可以,但是并不提倡 v-for 嵌套 v-if
其实可以写一个函数或者使用 computed 来处理:

<template>
  <div v-for="(val, ind) in filterArr" :key="val">
    {{ ind }} - {{ val }}
  </div> 
  <!-- 或者 -->
  <div v-for="(val, ind) in filterArrFn(arr, [1,4,7])" :key="val">
    {{ ind }} - {{ val }}
  </div> 
</template>
<script>
export default {
  data() {
    return {
      arr: [0,1,2,3,4,5,6,7,8,9]
    }
  },
  computed: {
    filterArr() {
       return this.arr.filter((val, ind) => [1,4,7].includes(ind))
    }
  },
  methods: {
    filterArrFn(list, rules) {
      // 也可以和 computed 一样直接使用 this.arr 来过滤,就看你具体需求了。
      return list.filter((val, ind) => rules.includes(ind))
    }
  }
}
</script>
李新霁
2023-07-13
<div v-for="(item, index) in arr" :key="index">
  <template v-if="index === 1 || index === 4 || index === 7">
    {{ item }}
  </template>
</div>
 类似资料:
  • 本文向大家介绍JS从数组中随机取出几个数组元素的方法,包括了JS从数组中随机取出几个数组元素的方法的使用技巧和注意事项,需要的朋友参考一下 JS如何从一个数组中随机取出一个元素或者几个元素。 假如数组为 1.从数组items中随机取出一个元素 2.从前面的一篇随机数组中随机取几个元素 以上所述是小编给大家介绍的JS随机取出几个数组元素的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会

  • threejs如何获取一个几何体其中一个面的形状?

  • 问题内容: 有没有办法一次获取NumPy数组中几个元素的索引? 例如 我想找到in中每个元素的索引,即:。 我发现我使用的解决方案有点冗长: 输出: 问题答案: 您可以使用和(或为此): 这对于您的示例数组很好用,但是通常返回的索引数组不遵循中的值顺序。这可能是个问题,具体取决于您下一步要做什么。 在这种情况下,更好的答案是一个@Jaime给出了这里,使用: 返回值在中出现的索引。例如:

  • 数组个格式 请问大佬们怎么拿到name的值 跟 sub, 放到table表格展示, table表格列表是循环的

  • 本文向大家介绍从数组数组中返回一个数组,其中每个项目是JavaScript中相应子数组中所有项目的总和,包括了从数组数组中返回一个数组,其中每个项目是JavaScript中相应子数组中所有项目的总和的使用技巧和注意事项,需要的朋友参考一下 给定一个数组数组,每个数组包含一组数字。我们必须编写一个返回数组的函数,其中每个项目都是相应子数组中所有项目的总和。 例如- 如果输入数组是- 那么我们函数的输

  • 问题内容: 到目前为止,这是我的JavaScript代码: 当前,它需要URL中数组的倒数第二个项目。但是,我想检查数组中的最后一项是否正确,如果是,请改为抓取倒数第三项。 问题答案: 如果您的服务器为“ index.html”和“ inDEX.htML”提供相同的文件,则您也可以使用:。 但是,如果可能的话,您可能要考虑在服务器端进行此操作:它将更加干净并且可以在没有JS的情况下使用。