在 React 中让前 3 个元素循环遍历数组的最佳方法?

Posted

技术标签:

【中文标题】在 React 中让前 3 个元素循环遍历数组的最佳方法?【英文标题】:Best way to get the first 3 elements looping through an array in React? 【发布时间】:2021-07-08 22:57:00 【问题描述】:

让前 3 个元素循环通过该 React 数组的最佳方法是什么?

const elements = [
  id:1, label:"1", value:1,
  id:2, label:"2", value:2,
  id:3, label:"3", value:3,
  id:4, label:"4", value:4,
  id:5, label:"3", value:5,
  id:6, label:"3", value:6
];

【问题讨论】:

数组方法,理想情况下。 这能回答你的问题吗? How to get first N number of elements from an array 如果以下答案有用,请单击其左侧的点赞按钮 (▲)。如果有人回答了您的问题,请单击复选标记 (✓) 接受它(一旦系统允许)。这样其他人就知道你已经(充分地)得到了帮助。另见What should I do when someone answers my question? 【参考方案1】:

如果可以改变原始数组,

const elements = [
      id:1, label:"1", value:1,
      id:2, label:"2", value:2,
      id:3, label:"3", value:3,
      id:4, label:"4", value:4,
      id:5, label:"3", value:5,
      id:6, label:"3", value:6
    ];
elements.length = 3;
console.log(elements);

如果可以改变原始数组,但不仅仅是前 3 个或前 n 个元素,您可能想要选择一个窗口,splice 会给您更多的灵活性。 More details

const elements = [
      id:1, label:"1", value:1,
      id:2, label:"2", value:2,
      id:3, label:"3", value:3,
      id:4, label:"4", value:4,
      id:5, label:"3", value:5,
      id:6, label:"3", value:6
    ];
elements.splice(3);
console.log(elements);

如果不需要改变原始数组,那么slice 是你的朋友。 More details

const elements = [
      id:1, label:"1", value:1,
      id:2, label:"2", value:2,
      id:3, label:"3", value:3,
      id:4, label:"4", value:4,
      id:5, label:"3", value:5,
      id:6, label:"3", value:6
    ];
const newElements = elements.slice(0, 3);
console.log(newElements);

【讨论】:

【参考方案2】:

您的预设需要修复,因为它是对象中的 key: value 对,而不是 key=value

但是您可以使用.slice(start, length) 来获得一定数量的结果:

const elements = [
    id: 1,
    label: "1",
    value: 1
  ,
  
    id: 2,
    label: "2",
    value: 2
  ,
  
    id: 3,
    label: "3",
    value: 3
  ,
  
    id: 4,
    label: "4",
    value: 4
  ,
  
    id: 5,
    label: "3",
    value: 5
  ,
  
    id: 6,
    label: "3",
    value: 6
  
];

console.log(elements.slice(0,3));

【讨论】:

【参考方案3】:

你可以使用拼接功能

const elements = [ 
  id:1, label:"1", value :1,
  id:2, label:"2", value :2,
  id:3, label:"3", value:3,
  id:4, label:"4", value:4,
  id:5, label:"3", value:5,
  id:6, label:"3", value:6
]

const first_tree=elements.splice(0,3)
console.log(first_tree)

【讨论】:

【参考方案4】:

使用destructuring:

const elements = [id:1, label:"1", value:1,id:2, label:"2", value:2,id:3, label:"3", value:3,id:4, label:"4", value:4,id:5, label:"5", value:5,id:6, label:"6", value:6];
const [one, two, three] = elements;
console.log(one, two, three);

slice:

elements.slice(0, 3).map((item) => (
  <div key=item.id>item.label</div>
))

【讨论】:

以上是关于在 React 中让前 3 个元素循环遍历数组的最佳方法?的主要内容,如果未能解决你的问题,请参考以下文章

用布尔值(PHP)评估数组的最短方法?

在 Java 中循环遍历数组的前 20 个元素

如何在 React JSX 中循环遍历数组中的某些项目 [重复]

循环遍历一个大数组并将值加在一起 ​​C#

循环遍历数组并成对输出(每个第二个元素的除法器)

angular在遍历数组之后如何给第一个元素加默认