我有一个要迭代通过的JSON对象。
"phone": {
"Samsung": {
"type": "S7"
},
"iPhone": {
"type": "6S"
},
"Google": {
"type": "Pixel"
}
}
我正在使用object.key
映射这些值,我认为这是处理对象的正确方法:
render() {
//this.props.phone contains the objects "Samsung", "iPhone", and "Google"
return (
Object.keys(this.props.phones).map((type) => {
console.log(type)
return (
<p>Type of phone: {type}</p>
)
})
)
}
但是,当我希望对象返回时,上面的console.log
返回以下内容:
为什么它返回的是值,而不是对象?
严格地说,这是ecmascript-2017的答案,但可以很容易地将其嵌入到较旧版本的JavaScript中。
您希望使用object.values
或object.entries
循环对象中的所有属性。其中,object.keys
提供键,object.values
提供属性(well,duh),object.entries
提供对象中每个条目的数组[key,value]
。
当前代码中没有使用该键,因此下面是object.values
选项:
Object.values(this.props.phones).map((type) => {
console.log(type)
return (
<p>Type of phone: {type}</p>
)
})
下面是object.entrients
选项,如果您想同时使用这两个选项:
Object.entries(this.props.phones).map(([make, type]) => {
console.log(make)
console.log(type)
return (
<p>Make of phone: {make}</p>
<p>Type of phone: {type}</p>
)
})
您将看到,我们使用ES6析构从object.entries
获得的数组中获得两个值。
每个功能的shims都链接在MDN页面上。
通过一个简单的数组,我可以使用标准的循环来实现: 但是如何用实物来做呢?
问题内容: 我从网络服务器获取以下JSON字符串。 我想要公开HTML中的JSON,我尝试了以下操作,但未填写字段,我也收到了“无异常”,因此我很难找出其不起作用的原因。 TS 的HTML 问题答案: 您可以使用来从对象获取键(需要IE AFAIK中的polyfill)
我目前正在努力迭代从第三方API获取的JSON对象。您可能会看到,以前没有真正处理过获取API。 这是我正在获取的JSON文件: 链接到JSON文件 为了获取数据,我使用一个useFetch脚本,它看起来像这样: 我稍后尝试导出的只是每个角色/冠军的名称(他本身就是一个对象,包括名称、描述等) 不幸的是,我在尝试转换JSON对象表示:
问题内容: 我在尝试解决JQuery $ .each()迭代时遇到一些真正的困难 这是我的数组,为方便起见,限制了结果 我的第一个$ .each迭代效果很好,但是“ EVENTS”的子迭代是我遇到问题的地方 我的第一个$ .each()函数 我无法使用的第二个$ .each()函数 我在(松散地)理解这不是单个JSON对象,而是对象的JSON数组,但不了解第一个版本是否有效,第二个版本为什么不起作
如何迭代对象及其子对象的属性?我在中使用了,但无法获取歌曲信息:/
我试图在Angular 2 Alpha 28中做一些事情,并且对字典和有问题。 我在TypeScript中有一个界面,如下所示: 在JavaScript中,这将转换为具有数据的对象,该对象可能看起来像这样: 我想重复一下,并尝试了以下方法: 但是,以下任何一项都不起作用: 在所有情况下,我都会收到错误,例如或 我错过了什么?这再也不可能了吗?(第一个语法在Angular 1. x中工作)或者迭代对