TypeError: splice 不是 JavaScript 中的函数

TypeError: splice 不是 JavaScript 中的函数

TypeError: splice is not a function in JavaScript

“TypeError: splice is not a function”错误发生在对splice()
非数组值调用方法时。

要解决该错误,请在调用该方法之前将值转换为数组,或确保仅对splice()有效数组调用该方法。

typeerror 拼接不是一个函数

下面是错误如何发生的示例。

索引.js
const obj = { first: 'bobby', last: 'hadz', }; // ⛔️ TypeError: splice is not a function obj.splice(1, 0, 'World');

我们在一个对象上调用了
Array.splice
方法,这导致了错误。

如果需要从对象中删除属性,请使用delete运算符。

索引.js
const obj = { first: 'bobby', last: 'hadz', }; delete obj['first']; console.log(obj); // 👉️ { last: 'hadz' }

运算符从适当的delete位置删除对象的属性。

splice()方法只能在有效数组上调用。

确保只splice()在有效数组上调用该方法

要解决错误,console.log您调用splice()方法的值并确保它是一个数组。

索引.js
const arr = ['Hello']; arr.splice(1, 0, 'World'); // 👇️ ['Hello', 'World'] console.log(arr);

如果在使用 a 或其他类似数组的对象时出现错误,请在调用方法NodeList之前将值转换为数组。splice()

索引.js
const set = new Set(['bobby', 'hadz']); const arr = Array.from(set); console.log(arr); // 👉️ [ 'bobby', 'hadz' ] arr.splice(2, 0, 'com'); console.log(arr); // 👉️ [ 'bobby', 'hadz', 'com' ]

我们使用该Array.from()方法将 转换Set为数组,因此我们可以splice()在数组上调用该方法。

如果错误仍然存​​在,console.log请检查您调用该方法的值并确保它是一个数组。 splice()

Check if the value is an array before using splice() #

Here is an example that checks if the value is an array before calling the
splice() method.

index.js
const arr = null; if (Array.isArray(arr)) { arr.splice(1, 0, 'example'); }
We used the Array.isArray() method to check if the value is an array before calling the splice() method.

If you’re working with an object, there’s a good chance that you need to access
a specific property that stores an array, so you can call the splice() method.

index.js
const obj = { numbers: [1, 2], }; obj.numbers.splice(2, 0, 3); // 👇️ {numbers: [1, 2, 3]} console.log(obj);

We accessed the numbers property, which stores an array and called the
splice() method on it.

The
Array.splice
method changes the contents of an array by removing or replacing existing
elements or adding new elements to the array.

The method takes the following arguments:

Name Description
start 开始更改数组的从零开始的索引
删除次数 要从数组中删除的元素数
第 1 项,…,第 N 项 start从索引开始向数组添加一个或多个值

结论

“TypeError: splice is not a function”错误发生在对splice()
非数组值调用方法时。

要解决该错误,请在调用该方法之前将值转换为数组,或确保仅对splice()有效数组调用该方法。