如何创建不可变数组?

Dor*_*ach 2 javascript arrays

我试图写一个脚本不能改变的数组;不是通过在数组中添加或弹出元素。我试图做这样的事情:

const arr = [30, 20, 10]
Run Code Online (Sandbox Code Playgroud)

但是当我尝试向 Array 添加一个元素时,它起作用了。

有人可以告诉我如何定义一个不能改变的数组

Shi*_*iny 8

您正在寻找 Object.freeze()

但是,您应该注意本身是对象的条目仍然可以修改,除非它们也被冻结

const arr = [30, 20, 10, {name: 'Tom', age: 54}, [0]];
Object.freeze(arr);

// arr.push(10); // Uncaught TypeError: Cannot add property 3, object is not extensible
// arr.pop();    // Uncaught TypeError: Cannot delete property '2' of [object Array]

arr[0] = 5;

arr[3].name = 'Modified';
arr[4][0] = 'Modified';

console.log(arr);
Run Code Online (Sandbox Code Playgroud)