watch 数组list[123,444,333,987] 观察其每一项如果改变则让其等于原始值
时间: 2024-10-08 12:22:23 浏览: 26
在JavaScript中,如果你想创建一个数组并观察其中每一项的变化,可以使用`Object.observe`方法(注意这个方法在ES5中可用,但在ES6及以后版本中已被移除)。但是,由于`Object.observe`已经被弃用,我们可以借助第三方库如`mobx`、`mobx-react`等来实现类似功能,它们提供了一种观察对象状态变化的方式。
例如,使用`mobx`库:
```javascript
import { observable, autorun } from 'mobx';
// 创建一个可观察的数组
const list = observable.array([123, 444, 333, 987]);
autorun(() => {
// 当list数组中的任何一项发生变化时,这里的回调会被触发
console.log('列表元素已更改,恢复原始值', list);
list.forEach((item, index) => {
if (list[index] !== originalValue[index]) { // 如果当前值不等于原始值
list[index] = originalValue[index]; // 将其设置回原始值
}
});
});
// 假设我们有一个原始值
const originalValue = [123, 444, 333, 987];
// 现在对list进行修改,会自动恢复到原始值
list[0] = 555;
```
然而,需要注意的是,在现代JavaScript中,直接操作数组元素通常不会触发这样的观察。如果你需要实时监听数组变化,建议使用订阅机制或利用特定库提供的解决方案。
阅读全文