Skip to content

Commit

Permalink
[zh-cn] sync translated content (#14957)
Browse files Browse the repository at this point in the history
Co-authored-by: allo <[email protected]>
  • Loading branch information
mdn-bot and yin1999 authored Aug 8, 2023
1 parent ca58b9c commit 66b9b5a
Show file tree
Hide file tree
Showing 8 changed files with 11 additions and 47 deletions.
2 changes: 2 additions & 0 deletions files/zh-cn/_redirects.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2517,6 +2517,8 @@
/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/constructor /zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array
/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/contains /zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/includes
/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/flatten /zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/flat
/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/group /zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/groupBy
/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/groupToMap /zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Map/groupBy
/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/index /zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/of
/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/input /zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/copyWithin
/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce()用法 /zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce
Expand Down
40 changes: 0 additions & 40 deletions files/zh-cn/web/javascript/reference/global_objects/array/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -113,8 +113,6 @@ console.log(fruits.length); // 2
- {{jsxref("Array/findIndex", "findIndex()")}}
- {{jsxref("Array/findLast", "findLast()")}}
- {{jsxref("Array/findLastIndex", "findLastIndex()")}}
- {{jsxref("Array/group", "group()")}} {{Experimental_Inline}}
- {{jsxref("Array/groupToMap", "groupToMap()")}} {{Experimental_Inline}}
- {{jsxref("Array/includes", "includes()")}}
- {{jsxref("Array/join", "join()")}}
- {{jsxref("Array/keys", "keys()")}}
Expand Down Expand Up @@ -147,8 +145,6 @@ console.log(fruits.length); // 2
- {{jsxref("Array/toSpliced", "toSpliced()")}}
- {{jsxref("Array/with", "with()")}}

注意,{{jsxref("Array/group", "group()")}} 和 {{jsxref("Array/groupToMap", "groupToMap()")}} 不使用 `@@species` 为每个组条目创建新数组,而是始终使用普通的 `Array` 构造函数。从概念上讲,它们也不是复制方法。

下表列出了会修改原始数组的方法,以及相应的非修改方法:

| 修改方法 | 相应的非修改方法 |
Expand Down Expand Up @@ -204,8 +200,6 @@ method(callbackFn, thisArg)
- {{jsxref("Array/findLastIndex", "findLastIndex()")}}
- {{jsxref("Array/flatMap", "flatMap()")}}
- {{jsxref("Array/forEach", "forEach()")}}
- {{jsxref("Array/group", "group()")}}
- {{jsxref("Array/groupToMap", "groupToMap()")}}
- {{jsxref("Array/map", "map()")}}
- {{jsxref("Array/some", "some()")}}

Expand Down Expand Up @@ -328,10 +322,6 @@ f("a", "b"); // 'a+b'
- : 对调用数组的每个元素调用给定的回调函数,然后将结果展平一层,返回一个新数组。
- {{jsxref("Array.prototype.forEach()")}}
- : 对调用数组中的每个元素调用给定的函数。
- {{jsxref("Array.prototype.group()")}} {{Experimental_Inline}}
- : 根据测试函数返回的字符串,将数组的元素分组到一个对象中。
- {{jsxref("Array.prototype.groupToMap()")}} {{Experimental_Inline}}
- : 根据测试函数返回的值,将数组的元素分组到 {{jsxref("Map")}} 中。
- {{jsxref("Array.prototype.includes()")}}
- : 确定调用数组是否包含一个值,根据情况返回 `true``false`
- {{jsxref("Array.prototype.indexOf()")}}
Expand Down Expand Up @@ -703,36 +693,6 @@ console.log(fruitsAlias);
// ['Apple', 'Banana', 'Strawberry', 'Mango']
```

### 对数组的元素进行分组

{{jsxref("Array.prototype.group()")}} 方法可用于对数组的元素进行分组,使用测试函数返回指示当前元素组的字符串。

这里我们有一个简单的库存数组,它包含具有 `name``type``food` 对象。

```js
const inventory = [
{ name: "asparagus", type: "vegetables" },
{ name: "bananas", type: "fruit" },
{ name: "goat", type: "meat" },
{ name: "cherries", type: "fruit" },
{ name: "fish", type: "meat" },
];
```

要使用 `group()`,你需要提供一个回调函数,该回调函数与当前元素、可选的当前索引和数组一起调用,并返回指示元素组的字符串。

下面的例子使用一个箭头函数返回每个数组元素的 `type`(此处使用[函数参数的对象解构语法](/zh-CN/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment#从作为函数实参的对象中提取数据)从传递的对象中提取 `type` 元素)。结果是一个对象,其属性以回调返回的唯一字符串命名。为每个属性分配一个数组,其中包含数组中的元素。

```js
const result = inventory.group(({ type }) => type);
console.log(result.vegetables);
// [{ name: "asparagus", type: "vegetables" }]
```

注意,返回的对象引用*相同*元素作为原数组(而不是{{glossary("deep copy", "深拷贝")}})。改变这些元素的内部结构将反映在原始数组和返回对象中。

如果不能使用字符串作为键,例如,如果要分组的信息与可能更改的对象相关联,那么可以使用 {{jsxref("Array.prototype.groupToMap()")}}。这与 `group` 非常相似,只是它将数组的元素分组到 {{jsxref("Map")}} 中,可以使用任意({{Glossary("object", "对象")}}或{{Glossary("primitive", "基本类型")}})作为键。

### 创建二维数组

下面的例子创建了一个代表棋盘的二维字符串数组。第一步是将 `board[6][4]` 中的 `'p'` 复制到 `board[4][4]`。原本的 `[6][4]` 位置则被设置为空格。
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -399,10 +399,10 @@ console.log(Array.prototype.reduce.call(arrayLike, (x, y) => x + y));
- [`core-js``Array.prototype.reduce` 的 polyfill](https://github.com/zloirock/core-js#ecmascript-array)
- [索引集合类](/zh-CN/docs/Web/JavaScript/Guide/Indexed_collections)
- {{jsxref("Array")}}
- {{jsxref("Array.prototype.group()")}}
- {{jsxref("Array.prototype.groupToMap()")}}
- {{jsxref("Array.prototype.map()")}}
- {{jsxref("Array.prototype.flat()")}}
- {{jsxref("Array.prototype.flatMap()")}}
- {{jsxref("Array.prototype.reduceRight()")}}
- {{jsxref("TypedArray.prototype.reduce()")}}
- {{jsxref("Object.groupBy()")}}
- {{jsxref("Map.groupBy()")}}
Original file line number Diff line number Diff line change
Expand Up @@ -252,10 +252,10 @@ console.log(Array.prototype.reduceRight.call(arrayLike, (x, y) => x - y));
- [`core-js``Array.prototype.reduce` 的 polyfill](https://github.com/zloirock/core-js#ecmascript-array)
- [索引集合类](/zh-CN/docs/Web/JavaScript/Guide/Indexed_collections)
- {{jsxref("Array")}}
- {{jsxref("Array.prototype.group()")}}
- {{jsxref("Array.prototype.groupToMap()")}}
- {{jsxref("Array.prototype.map()")}}
- {{jsxref("Array.prototype.flat()")}}
- {{jsxref("Array.prototype.flatMap()")}}
- {{jsxref("Array.prototype.reduce()")}}
- {{jsxref("TypedArray.prototype.reduceRight()")}}
- {{jsxref("Object.groupBy()")}}
- {{jsxref("Map.groupBy()")}}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Array.prototype.groupToMap()
slug: Web/JavaScript/Reference/Global_Objects/Array/groupToMap
slug: Web/JavaScript/Reference/Global_Objects/Map/groupBy
---

{{JSRef}} {{SeeCompatTable}}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Array.prototype.group()
slug: Web/JavaScript/Reference/Global_Objects/Array/group
slug: Web/JavaScript/Reference/Global_Objects/Object/groupBy
---

{{JSRef}} {{SeeCompatTable}}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ if (user.authenticated) {

JavaScript 还具有内置的 API,用于生成 `null` 原型对象,特别是那些将对象用作临时键值对集合的 API。例如:

- {{jsxref("Array.prototype.group()")}} 方法的返回值
- {{jsxref("Object.groupBy()")}} 方法的返回值
- {{jsxref("RegExp.prototype.exec()")}} 方法返回结果中的 `groups``indices.groups` 属性
- [`Array.prototype[@@unscopables]`](/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/@@unscopables) 属性(所有 `@@unscopables` 对象原型都应该为 `null`
- [`import.meta`](/zh-CN/docs/Web/JavaScript/Reference/Operators/import.meta) 对象
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,8 @@ Array Iterator {}
- {{jsxref("Promise.race()")}}
- {{jsxref("Promise.any()")}}
- {{jsxref("Array.from()")}}
- {{jsxref("Object.groupBy()")}}
- {{jsxref("Map.groupBy()")}}

```js
const myObj = {};
Expand Down

0 comments on commit 66b9b5a

Please sign in to comment.