gpt4 book ai didi

字符串路径中的 Javascript 对象值

转载 作者:行者123 更新时间:2023-11-28 18:19:29 24 4
gpt4 key购买 nike

我有一个对象:

var obj= {
hello:{
it:"ciao",
en:"hello"
}
}

现在的问题是我无法通过 obj.hello[lang] 访问值,也无法通过 obj.hello.en 访问值。

我有一个像“hello.it”或“hello.en”这样的字符串,我想要得到像 obj[myString] 这样的东西,它变成了 obj.hello.en

我尝试用.split('.')分割字符串,但我必须对长度结果进行循环硬编码

我怎样才能实现这个目标?

最佳答案

我不明白... obj.hello.it 应该可以工作

var obj= {
hello:{
it:"ciao",
en:"hello"
}
}

console.log(obj.hello.it);

如果您需要从字符串“hello.it”获取此值,我会这样做:

var obj= {
hello:{
it:"ciao",
en:"hello"
}
}

var helloIt = 'hello.it';
var helloEn = 'hello.en';

function translate(s){
var values = s.split('.');
var resource = values[0];
var lang = values[1];

return obj[resource][lang];
}

console.log(translate(helloIt));
console.log(translate(helloEn));

之后你必须处理一些情况(如果字符串的格式不正确,如果翻译不存在......)。您可以管理翻译模块中的所有内容或其他内容...希望它有所帮助;)

编辑:

如果你想有一种方法使用字符串来“探索”对象,你可以这样做:

var obj= {
hello:{
it:"ciao",
en:"hello"
}
};

function explore(o, s){
return s.split('.').reduce(function(r, ss){
return r && r[ss] ? r[ss] : null;
}, o);
}

console.log(explore(obj, 'hello.it'))

关于字符串路径中的 Javascript 对象值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40133400/

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