需求:在下方数组的title都要加上后盾人
// 原始for循环写法:<script> let lessons = [ {title: '媒体查询响应市布局', category:'css'}, {title: 'FLEX弹性盒模型', category:'css'}, {title: 'MYSQL多表查询', category:'css'}, ] // 原始写法 for (let i = 0; i<lessons.length; i++){ lessons[i].title = '后盾人' + lessons[i].title } console.log(lessons)</script>
// 模板字符串写法,显而易见,模板字符串写法更简洁<script> let lessons = [ {title: '媒体查询响应市布局', category:'css'}, {title: 'FLEX弹性盒模型', category:'css'}, {title: 'MYSQL多表查询', category:'css'}, ] // 模板字符串写法 for (let i = 0; i<lessons.length; i++){ lessons[i].title = `后盾人${lessons[i].title}` } console.log(lessons)</script>
for... of...写法
<script> let lessons = [ {title: '媒体查询响应市布局', category:'css'}, {title: 'FLEX弹性盒模型', category:'css'}, {title: 'MYSQL多表查询', category:'css'}, ] // 这里的value就是每一行的值,如:{title: '媒体查询响应市布局', category:'css'}, for(value of lessons){ // 原始写法 // value.title = '后盾人' + value.title // 模板字符串写法 value.title = `后端人${value.title}` } console.log(lessons)</script>
在这里要住一个细节,我们这里的value是个对象,它是个引用类型,所以我们这边再改变title的时候,他原数组也会跟着变了。
如果value是值类型,修改过后的原数组就依然不会变,比如:
<script> let arr = [1,2,3]; for (let value of arr) { value += 10; } console.log(arr); // 打印出来的值还是123,并没有加10</script>
再看看for in 怎么写的?
<script> let lessons = [ {title: '媒体查询响应市布局', category:'css'}, {title: 'FLEX弹性盒模型', category:'css'}, {title: 'MYSQL多表查询', category:'css'}, ] // 这里的index相当于就是数组的索引,比如0,1,2 for(let index in lessons){ lessons[index].title = `后盾人${lessons[index].title}` } console.log(lessons)</script>