Skip to content

Commit

Permalink
zh-cn: update the concat() methods (#24970)
Browse files Browse the repository at this point in the history
Co-authored-by: A1lo <[email protected]>
  • Loading branch information
Yanko1013 and yin1999 authored Dec 7, 2024
1 parent 86f5194 commit 2d93cab
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 12 deletions.
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
---
title: Array.prototype.concat()
slug: Web/JavaScript/Reference/Global_Objects/Array/concat
l10n:
sourceCommit: 6e93ec8fc9e1f3bd83bf2f77e84e1a39637734f8
---

{{JSRef}}

**`concat()`** 方法用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。
{{jsxref("Array")}} 实例的 **`concat()`** 方法用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。

{{EmbedInteractiveExample("pages/js/array-concat.html","shorter")}}

Expand All @@ -20,7 +22,7 @@ concat(value0, value1, /* … ,*/ valueN)

### 参数

- `valueN` {{optional_inline}}
- `value1`、……、`valueN` {{optional_inline}}
- : 数组和/或值,将被合并到一个新的数组中。如果省略了所有 `valueN` 参数,则 `concat` 会返回调用此方法的现存数组的一个[浅拷贝](/zh-CN/docs/Glossary/Shallow_copy)。详情请参阅下文描述。

### 返回值
Expand All @@ -29,7 +31,7 @@ concat(value0, value1, /* … ,*/ valueN)

## 描述

`concat` 方法创建一个新数组。该数组将首先由调用它的对象中的元素填充。然后,对于每个参数,它的值将被连接到数组中——对于普通对象或基元,参数本身将成为最终数组的一个元素;对于属性[`Symbol.isConcatSpreadable`](/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Symbol/isConcatSpreadable)设置为真的数组或类数组对象,参数的每个元素都将是独立地添加到最终数组中。`concat` 方法不会递归到嵌套数组参数中。
`concat` 方法创建一个新数组。该数组将首先由调用它的对象中的元素填充。然后,对于每个参数,它的值将被连接到数组中——对于普通对象或基元,参数本身将成为最终数组的一个元素;对于属性 [`Symbol.isConcatSpreadable`](/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Symbol/isConcatSpreadable) 设置为真的数组或类数组对象,参数的每个元素都将是独立地添加到最终数组中。`concat` 方法不会递归到嵌套数组参数中。

`concat()` 方法是一种[复制方法](/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array#复制方法和修改方法)。它不会更改 `this` 或作为参数提供的任何数组,而是返回包含与原始数组中的元素相同的元素的[浅拷贝](/zh-CN/docs/Glossary/Shallow_copy)

Expand All @@ -49,7 +51,7 @@ const numbers = [1, 2, 3];

const alphaNumeric = letters.concat(numbers);
console.log(alphaNumeric);
// results in ['a', 'b', 'c', 1, 2, 3]
// 输出 ['a', 'b', 'c', 1, 2, 3]
```

### 连接三个数组
Expand All @@ -64,7 +66,7 @@ const num3 = [7, 8, 9];
const numbers = num1.concat(num2, num3);

console.log(numbers);
// results in [1, 2, 3, 4, 5, 6, 7, 8, 9]
// 输出 [1, 2, 3, 4, 5, 6, 7, 8, 9]
```

### 将值连接到数组
Expand All @@ -77,7 +79,7 @@ const letters = ["a", "b", "c"];
const alphaNumeric = letters.concat(1, [2, 3]);

console.log(alphaNumeric);
// results in ['a', 'b', 'c', 1, 2, 3]
// 输出 ['a', 'b', 'c', 1, 2, 3]
```

### 合并嵌套数组
Expand Down Expand Up @@ -127,7 +129,13 @@ console.log([1, 2].concat([3, , 5])); // [1, 2, 3, empty, 5]
```js
console.log(Array.prototype.concat.call({}, 1, 2, 3)); // [{}, 1, 2, 3]
console.log(Array.prototype.concat.call(1, 2, 3)); // [ [Number: 1], 2, 3 ]
const arrayLike = { [Symbol.isConcatSpreadable]: true, length: 2, 0: 1, 1: 2 };
const arrayLike = {
[Symbol.isConcatSpreadable]: true,
length: 2,
0: 1,
1: 2,
2: 99, // 会被 concat() 所忽略,因为长度(length)为 2
};
console.log(Array.prototype.concat.call(arrayLike, 3, 4)); // [1, 2, 3, 4]
```

Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
---
title: String.prototype.concat()
slug: Web/JavaScript/Reference/Global_Objects/String/concat
l10n:
sourceCommit: c7ee557d776d91998eeec005b6c794f03d6079ad
---

{{JSRef}}

**`concat()`** 方法将字符串参数连接到调用的字符串,并返回一个新的字符串。
{{jsxref("String")}} 值的 **`concat()`** 方法将字符串参数连接到调用的字符串上,并返回一个新的字符串。

{{EmbedInteractiveExample("pages/js/string-concat.html")}}

Expand All @@ -19,20 +21,20 @@ concat(str1, str2, /* …, */ strN)

### 参数

- `strN`
- : 要连接到 `str` 的一个或多个字符串。
- `str1`、……、`strN`
- : 要连接到 `str` 的一个或多个字符串。尽管技术上允许,但不带参数地调用 `String.prototype.concat()` 毫无意义,因为它不会(像 {{jsxref("Array.prototype.concat()")}})返回可观察的拷贝——字符串是不可变的。仅当你将一个字符串数组作为参数[展开](/zh-CN/docs/Web/JavaScript/Reference/Operators/Spread_syntax),并且该数组恰好为空时,才应该发生这种情况。

### 返回值

一个包含所提供的多个字符串文本组合的新字符串。

## 描述

`concat()` 函数将字符串参数连接到调用的字符串并返回一个新字符串。对原字符串或返回的字符串所做的更改不会影响另一个字符串。
`concat()` 函数将字符串参数连接到调用的字符串并返回一个新字符串。

如果参数不是字符串类型,它们在连接之前将会被转换成字符串。

`concat()` 方法与[加号/字符串连接运算符](/zh-CN/docs/Web/JavaScript/Reference/Operators/Addition)`+``+=`)非常相似,不同之处在于 `concat()` 直接将其参数强制转换为字符串进行连接,而加号运算符首先将其操作数强制转换为原始值,然后再进行连接。有关更多信息,请参阅 [`+` 运算符的参考页面](/zh-CN/docs/Web/JavaScript/Reference/Operators/Addition)
`concat()` 方法与[加号/字符串连接运算符](/zh-CN/docs/Web/JavaScript/Reference/Operators/Addition)`+``+=`)非常相似,不同之处在于 `concat()` 直接将其参数强制转换为字符串进行连接,而加号运算符首先将其操作数强制转换为原始值,然后再进行连接。有关更多信息,请参阅 [`+` 运算符的参考页面](/zh-CN/docs/Web/JavaScript/Reference/Operators/Addition)

## 示例

Expand Down

0 comments on commit 2d93cab

Please sign in to comment.