如何在 javascript 中的 JSON 对象声明中跳过或将参数传递给子节点
How to skip or pass a parameter into a child node in JSON object declaration in javascript
很抱歉成为 JSON 上的菜鸟。我有一个参数要传递给调用 JSON 对象。
JSON:
{
"environments":{
"test":{
"on":true
}
}
}
在上面,第二个节点 test
是动态的,具体取决于您所在的环境。我想传递一个参数值,以便键可以根据您的声明进行更改(上面没有使用数组,这是我无法更改的第三方 API)。
代码:
const envName = 'test' // This can be changed to 'uat' too
if(body.environments.test.on === true) //I need the 'test' to change or parameterised.
{
// Do something
}
基本上,我想跳过键 'test' 或传递 envName
中的值。我包含了一个通配符 *
但它不起作用。
您可以使用方括号来参数化环境:
let body = {
"environments":{
"uat":{
"on":true
}
}
}
const envName = 'uat';
if(body.environments[envName].on === true)
{
console.log('true');
}
或Object.values()
做通配符场景:
let body = {
"environments":{
"uat":{
"on":true
}
}
}
const envName = 'uat';
if(Object.values(body.environments).some(x => x.on === true))
{
console.log('true');
}
您可以使用 for .. in
循环遍历 body.environments
的嵌套元素并检查 on 是否为真,如下所示:
const body = {
"environments":{
"test":{
"on":true
}
}
}
for(let b in body.environments) {
if(body.environments[b].on) {
console.log(body.environments[b].on);
}
}
很抱歉成为 JSON 上的菜鸟。我有一个参数要传递给调用 JSON 对象。 JSON:
{
"environments":{
"test":{
"on":true
}
}
}
在上面,第二个节点 test
是动态的,具体取决于您所在的环境。我想传递一个参数值,以便键可以根据您的声明进行更改(上面没有使用数组,这是我无法更改的第三方 API)。
代码:
const envName = 'test' // This can be changed to 'uat' too
if(body.environments.test.on === true) //I need the 'test' to change or parameterised.
{
// Do something
}
基本上,我想跳过键 'test' 或传递 envName
中的值。我包含了一个通配符 *
但它不起作用。
您可以使用方括号来参数化环境:
let body = {
"environments":{
"uat":{
"on":true
}
}
}
const envName = 'uat';
if(body.environments[envName].on === true)
{
console.log('true');
}
或Object.values()
做通配符场景:
let body = {
"environments":{
"uat":{
"on":true
}
}
}
const envName = 'uat';
if(Object.values(body.environments).some(x => x.on === true))
{
console.log('true');
}
您可以使用 for .. in
循环遍历 body.environments
的嵌套元素并检查 on 是否为真,如下所示:
const body = {
"environments":{
"test":{
"on":true
}
}
}
for(let b in body.environments) {
if(body.environments[b].on) {
console.log(body.environments[b].on);
}
}