gpt4 book ai didi

带有数组的 Javascript 同步对象

转载 作者:行者123 更新时间:2023-11-29 09:53:34 24 4
gpt4 key购买 nike

我有一个对象:

var obj = {'a':true,'b':false,'c':false,'d':true}

我有一个同步数组,其中包含对象中值为 true 的键。

var arr = ['a','d']

因此,如果 obj 更改为以下内容:(a 的值更改为 false)

obj = {'a':false,'b':false,'c':false,'d':true}

然后 arr 应该同步到以下内容:(a 元素从 arr 中删除)

arr = ['d'];

我想到了两种解决方案:

  1. 每当对象发生变化时,我都会根据对象中键的值对数组中的键执行推送/删除操作来操作相同的 arr。 (在我的例子中,使用 angularjs 可以很容易地检测到对象的更新)

  2. 每当对象发生变化时,我将用新数组替换旧数组,新数组仅包含那些值设置为 true 的键。

哪种解决方案更好??

最佳答案

Live demo:

你可以使用一个简单的类:

function Pair(obj, arr) {
this.obj_ = obj || {};
this.arr_ = arr || [];
this.updateArray();
};
Pair.prototype.set = function(key, val) {
this.obj_[key] = val;
this.updateArray();
};
Pair.prototype.updateArray = function() {
this.arr_.length = 0;
for (var key in this.obj_) {
if (this.obj_.hasOwnProperty(key)) {
if (this.obj_[key] === true) {
this.arr_.push(key);
};
};
};
};
Pair.prototype.getArray = function() {
return JSON.stringify(this.arr_);
};

关于带有数组的 Javascript 同步对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17229654/

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