Javascript:遍历JSON对象

这个问题在这里已经有了答案:

  • 如何遍历或枚举JavaScript对象? 29个答案

  • 这严格来说是一个ecmascript-2017的答案,但它可以轻松地进入老版本的Javascript。

    您想要使用Object.valuesObject.entries来遍历对象中的所有属性。 在Object.keys为你提供键的地方, Object.values为你提供了属性(well,duh),而Object.entries Object.values你提供了对象中每个条目的数组[key, value]

    你不会在你当前的代码中使用这个键,所以这里是Object.values选项:

        Object.values(this.props.phones).map((type) => {
            console.log(type)
            return (
                <p>Type of phone: {type}</p>
            )
        })
    

    这里是Object.entries选项,如果你想同时使用:

        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获取数组中的两个值。

    垫片链接在每个功能的MDN页面上。


    一个对象的键是字符串,所以当你查看Object.keys(someObject)时你会得到什么。 与该键关联的值是您正在查找的对象。 为了获得值,在你的映射迭代中,你需要用你的密钥访问对象。

    var self = this;//close over this value for use in map
    return (
        Object.keys(this.props.phones).map((type) => {
            console.log(self.props.phones[type]);//this will yield the object
            return (
                <p>Type of phone: {self.props.phones[type]}</p>
            )
        })
    )
    

    因为你迭代了对象键。 要在你的情况下返回对象,你必须使用给定的键来获得它的值:

    render() {
        //this.props.phone contains the objects "Samsung", "iPhone", and "Google"
        return (
            Object.keys(this.props.phones).map((type) => {
                console.log(this.props.phones[type])
                ...
            })
        )
    
    }
    
    链接地址: http://www.djcxy.com/p/28823.html

    上一篇: Javascript: Iterating over JSON objects

    下一篇: HashMap objects in javascript