【问题标题】:Adding new property to existing javascript object向现有 javascript 对象添加新属性
【发布时间】:2018-07-24 08:17:49
【问题描述】:

我正在尝试向数组中的每个对象添加格式:“电影”,但我无法弄清楚。

var movie = [
    {title: "A Clockwork Orange", year: "1971", raiting: "8.3", genre: "Crime, Drama, Sci-Fi"},
    {title: "Full Metal Jacket", year: "1987", raiting: "8.3", genre: " Drama, War"},
    {title: "Pulp Fiction", year: "1994", raiting: "8.9", genre: "Crime, Drama"},
    {title: "Fight Club", year: "1999", raiting: "8.8", genre: "Drama"},
    {title: "Interstellar", year: "2014", raiting: "8.6", genre: "Adventure, Drama, Sci-Fi"}
];


movie.forEach(function () {
    movie.format = "film";
});


movie.forEach(function (element) {
    console.log(element);
});

【问题讨论】:

  • 只是未来需要记住的一点,使用for ... in 或for ... of 循环可以让您在范围界定方面少很多麻烦。

标签: javascript arrays object foreach properties


【解决方案1】:

您需要将参数传递给function 并将新属性添加到其中

movie.forEach(function (element) {
    element.format = "film";
});

【讨论】:

    【解决方案2】:

    使用goes to 运算符。

    var movie = [    {title: "A Clockwork Orange", year: "1971", raiting: "8.3", genre: "Crime, Drama, Sci-Fi"},    {title: "Full Metal Jacket", year: "1987", raiting: "8.3", genre: " Drama, War"},    {title: "Pulp Fiction", year: "1994", raiting: "8.9", genre: "Crime, Drama"},    {title: "Fight Club", year: "1999", raiting: "8.8", genre: "Drama"},    {title: "Interstellar", year: "2014", raiting: "8.6", genre: "Adventure, Drama, Sci-Fi"}];
    
    let i = movie.length;
    while (i --> 0) movie[i].format = 'film';
    console.log(movie);
    .as-console-wrapper {
      max-height: 100% !important
    }

    【讨论】:

      【解决方案3】:

      如果你也喜欢 ES6,你当然可以用粗箭头来做到这一点。

      movie.forEach(element => element.format = "film");
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-10-23
        • 1970-01-01
        • 2019-04-20
        • 2013-01-23
        • 1970-01-01
        • 1970-01-01
        • 2015-07-04
        • 2018-04-25
        相关资源
        最近更新 更多