需要将对象名称与计数器变量正确连接

时间:2018-11-13 20:24:43

标签: javascript

我正在制作这个演示。我如何将years.rangecounter连接起来以拥有years.range2[0]

let years = {
  range1: [200, 2001, 2002, 2003],
  range2: [2004, 2005, 206, 2007]
}

//$('#year').html(years.range1[0]);
let counter = 1;
$('#year').html(years.range + counter + [0]);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="year"></div>

2 个答案:

答案 0 :(得分:1)

动态属性访问需要[ ... ]

 years["range" + counter][0]

但是为什么years不是数组?那样会使事情变得更容易。

 const years = [
    [200,2001,2002,2003],
[2004,2005,206,2007]
];

console.log(years[0]);

答案 1 :(得分:1)

尝试通过此操作从range2范围对象访问years项:

let years = {
  range1: [200, 2001, 2002, 2003],
  range2: [2004, 2005, 206, 2007]
}

const counter = 2  // <--- gets you `years['range2']` when concatenated

$('#year').html(years[`range${counter}`][0]); 

通过此操作:$('#year').html(years.range + counter + [0]);

问题是years.range + counter会为您提供适当的数组索引,但是+[0]会让您搞砸,因为您说的是将years.range1添加到包含单个元素的数组中-{{1} }。