javascript - 遍历嵌套类对象

标签 javascript

我有一个看起来像这样的类:

class Item {
    constructor (color, size) {
        this._color = color
        this._size = size
    }

    get color() {
        return this._color
    }

然后我实例化一个基础项:

const pencil = new Item('yellow', 6)

然后我实例化几个子项:

pencil.eraser = new Item('red', 2)
pencil.lead = new Item('grey', 1)

我想以某种方式遍历每个子项。

var colors = [];

pencil.forEach(part => {
    colors.push(part.color)
}
console.log(colors) //expected output: red, grey

这样的事情会很好,但我知道这是不可能的。

最佳答案

您可以获得对象属性的所有值,.filter()instanceof Item,然后是.map() 他们的颜色。

class Item {
    constructor (color, size) {
        this._color = color
        this._size = size
    }

    get color() {
        return this._color
    }
}

const pencil = new Item('yellow', 6)

pencil.eraser = new Item('red', 2)
pencil.lead = new Item('grey', 1)

var colors = Object.values(pencil)
                   .filter(v => v instanceof Item)
                   .map(p => p.color);
   
console.log(colors)

关于javascript - 遍历嵌套类对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49806531/

相关文章:

javascript - Qooxdoo中的餐 table 装饰

php - 欧芹表单未提交

javascript - react native 相机在导航时变成空白

javascript - 如何在 Angular 的父 Controller 中访问子 Controller 范围?

javascript - jQuery tablesorter - 从排序器/过滤器中隐藏特定的表格内容

javascript - 更新后添加youtube-video后的CKEditor Rails空白页

javascript - getJSON 在返回值的函数中不起作用

javascript - 了解 AngularJS Controller 中的依赖注入(inject)

javascript - 如何验证一张大表格

javascript - node.js 异步系列函数的参数