TypeError: splice 不是 JavaScript 中的函数
TypeError: splice is not a function in JavaScript
“TypeError: splice is not a function”错误发生在对splice()
非数组值调用方法时。
要解决该错误,请在调用该方法之前将值转换为数组,或确保仅对splice()
有效数组调用该方法。
下面是错误如何发生的示例。
const obj = { first: 'bobby', last: 'hadz', }; // ⛔️ TypeError: splice is not a function obj.splice(1, 0, 'World');
我们在一个对象上调用了
Array.splice
方法,这导致了错误。
如果需要从对象中删除属性,请使用delete
运算符。
const obj = { first: 'bobby', last: 'hadz', }; delete obj['first']; console.log(obj); // 👉️ { last: 'hadz' }
运算符从适当的delete
位置删除对象的属性。
该splice()
方法只能在有效数组上调用。
确保只splice()
在有效数组上调用该方法
要解决错误,console.log
您调用splice()
方法的值并确保它是一个数组。
const arr = ['Hello']; arr.splice(1, 0, 'World'); // 👇️ ['Hello', 'World'] console.log(arr);
如果在使用 a 或其他类似数组的对象时出现错误,请在调用方法NodeList
之前将值转换为数组。splice()
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.
const arr = null; if (Array.isArray(arr)) { arr.splice(1, 0, 'example'); }
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.
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()
有效数组调用该方法。