gpt4 book ai didi

javascript - 为什么 split() 和 shift() 当我直接使用和通过变量使用它们时会产生不同的结果

转载 作者:行者123 更新时间:2023-12-01 01:14:40 25 4
gpt4 key购买 nike

我有点难以理解一件事。

假设我们有一个const text = "little text test"

当我使用console.log(text.split(' '))

控制台返回一个包含 3 个元素“little”、“text”和“test”的数组。到这里就可以了

所以如果我使用const test = text.split(' ') 然后 console.log(test)控制台返回一个包含 2 个元素“text”和“test”的数组,在我看来这没有任何意义

当我尝试使用shift()时也会发生同样的情况,如果我使用log.console(test.shift())控制台返回文本及其右侧,剪切数组中的第一项,然后给我带来下一项

但如果我使用 const test2 = test.split(' ')log.console(test.shift()) 控制台返回很少,但 shift() 删除了数组的第一个参数...那么为什么我只有很少呢?

代码:

const text = "little text test";
const test = text.split(' ');
const test2 = test.shift();
console.log(text.split(' '));
console.log(test);
console.log();
console.log(test.shift());
console.log(test2);

控制台:

[ 'little', 'text', 'test' ]
[ 'text', 'test' ]

text
little

最佳答案

您对 shift 方法有错误的想法。 Array.prototype.shift()
确实执行以下操作:

<强>1。它会改变数组。

const a = [1,2,3]
a.shift();
console.log(a) // [2,3]

<强>2。它返回移位的元素。

const b = [1,2,3].shift();
console.log(b) // 1

所以,你看到的是 JS 的自然行为。

const text = "little text test";
const test = text.split(' ');
const test2 = test.shift(); // this line mutate the test array.
console.log(text.split(' '));
console.log(test);
console.log();
console.log(test.shift()); // this line, too. And it prints shifted one, not the whole elements.
console.log(test2); // test2 holds 'little' string by line 3.

关于javascript - 为什么 split() 和 shift() 当我直接使用和通过变量使用它们时会产生不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54879554/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com