Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中访问对象中的值?_Javascript - Fatal编程技术网

如何在javascript中访问对象中的值?

如何在javascript中访问对象中的值?,javascript,Javascript,我有一个这样的对象,我可以这样记录: console.log(node.data.target.fields); 我想访问url值,但它抛出一个错误: const url = node.data.target.fields.file.['en-US'].url; 如何正确访问en-Us变量?由于en-Us不能用作变量名(-是运算符,不能用作变量的一部分),因此不能使用点符号。因此,您可以访问的唯一方法是使用[]符号 const url = node.data.target.fields.fi

我有一个这样的对象,我可以这样记录:

console.log(node.data.target.fields);
我想访问url值,但它抛出一个错误:

const url = node.data.target.fields.file.['en-US'].url;

如何正确访问en-Us变量?

由于
en-Us
不能用作变量名(
-
是运算符,不能用作变量的一部分),因此不能使用点符号。因此,您可以访问的唯一方法是使用
[]
符号

const url = node.data.target.fields.file['en-US'].url;
以上是访问它的正确方式,否则,您也可以通过以下方式访问:

const lang = 'en-US';
const url = node.data.target.fields.file[lang].url;
两个例子:

const节点={
数据:{
目标:{
字段:{
文件:{
“en US”:{
url://images.ctfassets.net/qkwv5aiilkmk/“
}
}
}
}
}
};
(() => {
log(“使用直接访问…”);
const url=node.data.target.fields.file['en-US'].url;
console.log(url);
})();
(() => {
log(“使用变量…”);
const lang='en US';
const url=node.data.target.fields.file[lang].url;
console.log(url);

})();要从给定的答案中添加访问对象属性的一些指导原则,下面是一些将来会对您有所帮助的提示

1。点属性访问器

访问对象属性的常用方法是点属性访问器语法:
expression.identifier

const hero = {
  name: 'Batman'
};

// Dot property accessor
hero.name; // => 'Batman'
1.1点属性访问器需要标识符

-当属性名称是有效标识符时,点属性访问器可以正常工作。JavaScript中的标识符包含Unicode字母、$、\和数字0..9,但不能以数字开头

const weirdObject = {
  'prop-3': 'three',
  '3': 'three'
};

weirdObject.prop-3; // => NaN
weirdObject.3;     // throws SyntaxError: Unexpected number
  • 要使用这些特殊名称访问属性,请使用方括号属性访问器(将在下一节中介绍):
2。方括号属性访问器:

-表达[表达]

const property = 'name';
const hero = {
  name: 'Batman'
};

// Square brackets property accessor:
hero['name'];   // => 'Batman'
hero[property]; // => 'Batman'
3。对象分解:

  • 常量{identifier}=表达式
请注意,您可以提取任意数量的属性:
const{identifier1,identifier2,…,identifierN}=表达式

文件。['en-US']。url
看起来像一个简单的打字错误,你是不是想做
文件['en-US']。url
IOW:你在那里加了一个点。
const weirdObject = {
  'prop-3': 'three',
  '3': 'three'
};

weirdObject['prop-3']; // => 'three'
weirdObject[3];        // => 'three'
const property = 'name';
const hero = {
  name: 'Batman'
};

// Square brackets property accessor:
hero['name'];   // => 'Batman'
hero[property]; // => 'Batman'
const hero = {
  name: 'Batman'
};

// Object destructuring:
const { name } = hero;name; // => 'Batman'