属性无法识别JavaScript对象

优卡莉

我的程序非常简单-它应将影片保存在数组中,然后以JSON格式打印。问题在于“ contains()”方法(我认为)。它可以很好地与名字电影一起使用,但是当名字中包含空格时,它将返回null。这是代码。

function movieDirectors(array) {
  let movies = [];

  class Movie {
    constructor(name, director, date) {
      this.name = name;
      this.director = director;
      this.date = date;
    }
  }
  let contains = function (movieName) {
    let movie = null;
    movies.forEach(m => m.name === movieName ? movie = m : movie = null);
    return movie;
  }

  for (let i = 0; i < array.length; i++) {
    let command = array[i].split(' ');

    if (command.includes('addMovie')) {
      let name = command.slice(1, command.length).join(' ');
      movies.push(new Movie(name, null, null));
    } else if (command.includes('directedBy')) {
      let name1 = command.slice(0, command.indexOf('directedBy')).join(' ');
      if (contains(name1) !== null) {
        let movie = contains(name1);
        movie.director = command.slice(command.indexOf('directedBy') + 1, command.length).join(' ');
      }
    } else if (command.includes('onDate')) {
      let name2 = command.slice(0, command.indexOf('onDate')).join(' ');
      if (contains(name2) !== null) {
        let movie = contains(name2);
        movie.date = command.slice(command.indexOf('onDate') + 1, command.length).join(' ');
      }
    }
  }
  movies.forEach(m => m.director != null && m.name != null && m.date != null ? console.log(JSON.stringify(m)) : null);
}

movieDirectors([
    'addMovie Fast and Furious',
    'addMovie Godfather',
    'Godfather directedBy Francis Ford Coppola',
    'Godfather onDate 29.07.2018',
    'Fast and Furious onDate 30.07.2018',
    'Fast and Furious directedBy Rob Cohen']);

输出必须是这样的:

{"name":"Fast and Furious","date":"30.07.2018","director":"Rob Cohen"}
{"name":"Godfather","director":"Francis Ford Coppola","date":"29.07.2018"}

我的JavaScript语言非常环保,非常感谢您帮助我理解语言的这些精妙之处。

Potados

contains当找到具有给定名称的电影时,该函数将停止并返回。

它将起作用:

let contains = function (movieName) {
    return movies.find(m => m.name === movieName);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

导出的对象无法识别javascript中的函数

来自分类Dev

无法覆盖JavaScript对象的属性

来自分类Dev

遍历嵌套的javascript对象以识别空值属性

来自分类Dev

无法识别属性名称

来自分类Dev

类无法识别属性?

来自分类Dev

无法识别属性名称

来自分类Dev

无法识别列表对象

来自分类Dev

find()无法识别对象的javascript数组中的重复值

来自分类Dev

无法检索Javascript中的对象属性

来自分类Dev

无法从Javascript中的对象访问属性

来自分类Dev

无法访问JavaScript对象属性

来自分类Dev

Javascript对象文字,无法设置属性

来自分类Dev

无法更改对象的属性值 - JavaScript

来自分类Dev

Javascript 对象无法访问其属性

来自分类Dev

无法识别insertRow JavaScript

来自分类Dev

Javascript无法识别jQuery

来自分类Dev

无法识别insertRow JavaScript

来自分类Dev

JavaScript无法识别图像

来自分类Dev

$ watch无法识别更新的属性

来自分类Dev

枚举的rawValue属性无法识别

来自分类Dev

无法识别的属性'targetFramework

来自分类Dev

ReactJS:无法识别 DOM 属性

来自分类Dev

类无法识别该属性

来自分类Dev

Scala独立对象无法识别

来自分类Dev

Schema.org:“对于组织类型的对象,Google无法识别属性Organization / aggregateRating”

来自分类Dev

对于类型为Distance的对象,Google无法识别出属性高度

来自分类Dev

无法将HTML数据属性值解析为Javascript对象

来自分类Dev

无法将aria-hidden属性用作javascript对象

来自分类Dev

Javascript:无法通过for..in循环访问对象属性