mirror of
https://github.com/qianguyihao/Web.git
synced 2024-11-01 13:34:46 +08:00
Compare commits
3 Commits
a074c6c8fd
...
1f8a2f9dd7
Author | SHA1 | Date | |
---|---|---|---|
|
1f8a2f9dd7 | ||
|
10c2db509d | ||
|
de188c0114 |
@ -103,6 +103,7 @@ HTML标签是分等级的,HTML将所有的标签分为两种:
|
|||||||
<p>
|
<p>
|
||||||
我是一个小段落
|
我是一个小段落
|
||||||
<h1>我是一级标题</h1>
|
<h1>我是一级标题</h1>
|
||||||
|
<h2>块级元素不能放p段落标签里面</h2>
|
||||||
</p>
|
</p>
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -1476,7 +1476,9 @@ console.log(arr2);
|
|||||||
|
|
||||||
## filter()
|
## filter()
|
||||||
|
|
||||||
语法:
|
### 语法
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
```js
|
```js
|
||||||
const newArr = arr.filter((currentItem, currentIndex, currentArray) => {
|
const newArr = arr.filter((currentItem, currentIndex, currentArray) => {
|
||||||
@ -1488,6 +1490,8 @@ const newArr = arr.filter((currentItem, currentIndex, currentArray) => {
|
|||||||
|
|
||||||
作用:对数组进行过滤。
|
作用:对数组进行过滤。
|
||||||
|
|
||||||
|
### 举例
|
||||||
|
|
||||||
**举例 1**:找出数组 arr1 中大于 4 的元素,返回一个新的数组。代码如下:
|
**举例 1**:找出数组 arr1 中大于 4 的元素,返回一个新的数组。代码如下:
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
@ -1521,12 +1525,12 @@ console.log(JSON.stringify(arr2)); // 打印结果:[6,5,6]
|
|||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
const arr1 = [
|
const arr1 = [
|
||||||
{ name: '许嵩', type: '一线' },
|
{ name: '许嵩', type: '一线' },
|
||||||
{ name: '周杰伦', type: '退居二线' },
|
{ name: '周杰伦', type: '退居二线' },
|
||||||
{ name: '邓紫棋', type: '一线' },
|
{ name: '邓紫棋', type: '一线' },
|
||||||
];
|
];
|
||||||
|
|
||||||
const arr2 = arr1.filter((item) => item.type == '一线'); // 筛选出一线歌手
|
const arr2 = arr1.filter(item => item.type == '一线'); // 筛选出一线歌手
|
||||||
|
|
||||||
console.log(JSON.stringify(arr2));
|
console.log(JSON.stringify(arr2));
|
||||||
```
|
```
|
||||||
@ -1540,6 +1544,65 @@ console.log(JSON.stringify(arr2));
|
|||||||
];
|
];
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### 两端代码对比
|
||||||
|
|
||||||
|
仔细看看下面这两段代码,有什么区别。数组 arr2的打印结果是不一样的。
|
||||||
|
|
||||||
|
第一段代码:
|
||||||
|
|
||||||
|
```js
|
||||||
|
const arr1 = [
|
||||||
|
{
|
||||||
|
name: 'a',
|
||||||
|
num: 1,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'b',
|
||||||
|
num: 2,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
const arr2 = [];
|
||||||
|
|
||||||
|
const arr3 = dataList.filter(item => {
|
||||||
|
return item.num === 1;
|
||||||
|
arr2.push(item);
|
||||||
|
});
|
||||||
|
|
||||||
|
console.log(arr2);
|
||||||
|
```
|
||||||
|
|
||||||
|
第二段代码:
|
||||||
|
|
||||||
|
```js
|
||||||
|
const arr1 = [
|
||||||
|
{
|
||||||
|
name: 'a',
|
||||||
|
num: 1,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'b',
|
||||||
|
num: 2,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
const arr2 = [];
|
||||||
|
|
||||||
|
const arr3 = dataList.filter(item => {
|
||||||
|
if (item.num === 1) return item;
|
||||||
|
arr2.push(item);
|
||||||
|
});
|
||||||
|
|
||||||
|
console.log('smyhvae arr2:', arr2);
|
||||||
|
```
|
||||||
|
|
||||||
|
分析:
|
||||||
|
|
||||||
|
- 第一段代码的打印结果是 空数组 `[]`。因为`return` 语句位于回调函数的第一行,所以一旦执行就直接返回,导致后面的 `arr2.push(item);` 永远不会被执行,因此 `arr2` 始终为空。
|
||||||
|
- 第二段代码的打印结果是` [{ name: 'b', num: 2 }]`。由于 `return` 语句位于 `if` 语句内部,只有在特定条件下(`item.num === 1`)才会终止回调函数,否则 `arr2.push(item);` 仍然会被执行,因此 `arr2` 中会有值。
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## reduce()
|
## reduce()
|
||||||
|
|
||||||
### reduce() 语法
|
### reduce() 语法
|
||||||
|
Loading…
Reference in New Issue
Block a user