遍历数组,我们通常使用map方法
// 在实际开发中,如果数据涉及到增删改查了,key值我们通常使用业务id,而不是使用数组下标import React from 'react';class App extends React.Component {render() {let arr = ['a', 'b', 'c', 'd'];return (<ul>{arr.map((item, index) => {return <li key={index}>{item}</li>})}</ul>)}}
遍历对象,两种方法(for…in循环做成自运行函数、Object.entries(obj)将对象转换成数组再使用map方法)
// for 循环只是流程控制语句,而非表达式,也就是for循环运算完也不会有结果。// 那怎么把 for循环做成一个表达式呢,这样才会有结果// 做成自运行函数就可以了class App extends React.Component {render() {let obj = {a: 1,b: 2,c: 3}return (<ul>{// for(const key in obj) {// if(obj.hasOwnProperty(key)) {// const value = obj[key];// }// }(() => {let domArr = [];for(const key in obj) {if(obj.hasOwnProperty(key)) {const value = obj[key]domArr.push(<li key={key}>{value}</li>)}}return domArr;})()}</ul>)}}// Object.entries() 把对象转换成数组class App extends React.Component {render() {let obj = {a: 1,b: 2,c: 3}return (<ul>{Object.entries(obj).map(([key, value], index) => {// item是一个小数组,把item解构,写法是[key, value]return <li key={key}>{value}</li>})}</ul>)}}
遍历字符串(将字符串转换成数组再使用map方法)
class App extends React.Component {render() {let str = 'hello world'return (<ul>{str.split('').map((item, index) => {return <li key={index}>{item}</li>})}</ul>)}}
遍历数字(将数字也转换成数组再使用map方法)
class App extends React.Component {render() {let num = 5;return (<ul>{new Array(num).fill('').map((item, index) => {<li key={index}>{item}</li>})}</ul>)}}
结论
综上可知,react当中,数据的遍历,不论是对象还是字符串或者其他的数据结构都是先转换为数组,再使用map循环去遍历。
