gpt4 book ai didi

JavaScript 对象 - 不同类型取决于上下文

转载 作者:搜寻专家 更新时间:2023-11-01 04:08:42 24 4
gpt4 key购买 nike

我要开始说我不认为这是可能的,但希望有人知道 JavaScript 中的一些特殊方法来做到这一点。我有一个 JavaScript 对象,定义如下:

var t = {
"fields": {
"a": ["99", "98"]
}
};

我正在寻找一种方法,以便我可以用不同的值定义数组的相同元素两次,这些值可以在两个不同的上下文中使用 - 就像这样:

var t = {
"fields": {
"a": ["99", "98"],
"a": "99|98"
}
};

如果我使用语法 t.fields["a"] 查询它,它将返回 "99|98"但如果我使用 t.fields[ "a"][0] 然后它会返回 "99"。我知道如果我在不指定索引的情况下查询一个数组,那么它会以字符串形式返回“99,98”——但我需要它返回以“|”分隔的条目而不是“,”。

最佳答案

也可以使用 getter 函数,如下所示:

var t = {
"fields": {
"_a": ["99", "98"],
"a": function (index) {
if (typeof index != 'undefined')
return this._a[index];
else
return this._a.join('|');
}
}
};

console.log(t.fields['a']()); // 99|98
console.log(t.fields['a'](1));// 98

您还可以对所有字段使用全局获取函数:

var t = {
"fields": {
"_a": ["99", "98"],
get: function (field, index) {
if (typeof index != 'undefined')
return this['_' + field][index];
else
return this['_' + field].join('|');
}
}
};

console.log(t.fields.get('a')); // 99|98
console.log(t.fields.get('a', 1)); // 98

关于JavaScript 对象 - 不同类型取决于上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26687833/

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