1

我有一组属性为movieName、grade和position的movies对象。例如,这些对象看起来像:

var movies=[{movieName:“蜜蜂电影”,等级:3,位置1},{movieName:“史莱克”,等级:5,位置:2}];

我想获取对象的movieName属性。要从movies数组中确定要从哪个对象获取movieName,我创建了一个名为arrayPosition的变量,该变量是介于0和数组长度-1之间的随机数:

arrayPosition=数学地板(Math.random()*movies.length);

例如:

var电影=[{movieName:“难以置信”,等级:4,位置:1},{movieName:“螺栓”,等级:5,位置:2}];const-arrayPosition=Math.floor(Math.random()*movies.length);console.log(movies[arrayPosition].movieName);

在这种情况下,我希望它根据arrayPosition是0还是1来控制台“不可思议”或“螺栓”,但它只控制台未定义。

我见过类似问题的解决方案,但在这些情况下,对象在数组中的位置不是一个变量,而是一个确定的数字。由于某种原因,这种差异使其无法工作。我如何从数组中的对象中仅获取movieName属性?

  • 它应该正确地记录console.log索引0或1 评论 2020年2月15日8:54
  • 除了不申报阵列位置看起来是正确的,为什么不把上面的代码变成一个有效的代码片段呢?
    – 基思
    评论 2020年2月15日8:57
  • 你面临的问题是什么?我看你的代码是正确的。 评论 2020年2月15日20:16

1个答案1

重置为默认值
2

您的示例代码工作正常。

var电影=[{movieName:“蜜蜂电影”,等级:3,位置:1},{movieName:“史莱克”,等级:5,位置:2},{movieName:“不可思议”,等级:4,位置:1},{movieName:“螺栓”,等级:5,位置:2}];var arrayPosition=Math.floor(Math.random()*movies.length)console.log(movies[arrayPosition].movieName)

如果你知道你一直想控制台.log数组中第二部电影的标题,您可以改为:

var电影=[{movieName:“蜜蜂电影”,等级:3,位置:1},{movieName:“史莱克”,等级:5,位置:2},{movieName:“不可思议”,等级:4,位置:1},{movieName:“螺栓”,等级:5,位置:2}];var数组位置=1console.log(movies[arrayPosition].movieName)

记住:

JavaScript数组零诱导:数组的第一个元素位于索引0处,最后一个元素位于等于数组长度属性值减去1的索引处。

使用无效的索引号会返回未定义的值。

你的答案

单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策.

不是你想要的答案吗?浏览标记的其他问题问你自己的问题.