Javascript 字符串+;变量

Javascript 字符串+;变量,javascript,Javascript,我在这个问题上没有找到太多的东西,我知道我做得完全错误,但我试图做一些类似于以下的事情: var position1 = raw_dates.indexOf(date1); var position2 = raw_dates.indexOf(date2); var i = 0; while(i<=(officers.length-1)){ var tmp1 = 'array1_'+i; var tmp2 = 'array2_

我在这个问题上没有找到太多的东西,我知道我做得完全错误,但我试图做一些类似于以下的事情:

    var position1 = raw_dates.indexOf(date1);
    var position2 = raw_dates.indexOf(date2);

    var i = 0;
    while(i<=(officers.length-1)){
        var tmp1 = 'array1_'+i;
        var tmp2 = 'array2_'+i;

        tmp1 = tmp1.slice(position1,position2);
        tmp2 = tmp2.slice(position1,position2);
        i++;
    }

    dates = raw_dates.filter(function(x){
        return x >= date1 && x <= date2;
    }); 

我仍然不清楚你到底想做什么,但是你的while循环实际上什么都做不了。以下是一些观察结果:

这将创建一个字符串,如
'array1\u 0'

var tmp1='array1_uu1'+i;
切片
“array1\u 0”
返回一个子字符串。例如,
'array1_0'。切片(2,4)
返回字符3-4:
'ra'

tmp1=tmp1.切片(位置1,位置2);
//现在tmp1是“array1_0”的子串,例如“ar”或“ra”或“ay1”
但这些都无关紧要,因为从来没有对
tmp1
tmp2
做过任何事情。变量在while循环中声明,重新分配给子字符串,然后在每次迭代结束时丢弃


我在这里进行了一些推测,因为,正如我所说的,我仍然不清楚您试图做什么,但是您的目的是否会更好地由一个对象而不是一堆数组来实现?比如:

警察={
乔:{
起始日期:“2019-01-02”,
截止日期:2019-01-03
},
鲍勃:{
起始日期:“2019-01-02”,
截止日期:2019-01-03
},
}
或每个官员的一系列职位:

警察={
乔:{
位置:[//位置对象数组
//每个条目都是一个包含位置信息的对象
{标题:'grunt',开始日期:'2019-01-01',结束日期:'2019-01-02'},
{标题:'新秀',开始日期:'2019-01-02',结束日期:'2019-01-03'},
{标题:'船长',起始日期:'2019-01-03',结束日期:'2019-01-04'},
]
},
鲍勃:{
职位:[
{标题:'grunt',开始日期:'2019-01-01',结束日期:'2019-01-02'},
{标题:'新秀',开始日期:'2019-01-02',结束日期:'2019-01-03'},
]
},
}
或者作为包含军官
姓名
和军官
位置
条目的对象数组。(基本上与上述相同,但如果您有两名名名为joe的警官,则可避免姓名冲突:

警察=[
{
名字:'乔',
职位:[
{标题:'grunt',开始日期:'2019-01-01',结束日期:'2019-01-02'},
{标题:'新秀',开始日期:'2019-01-02',结束日期:'2019-01-03'},
]
},
{
姓名:'鲍勃',
职位:[
{标题:'grunt',开始日期:'2019-01-01',结束日期:'2019-01-02'},
{标题:'新秀',开始日期:'2019-01-02',结束日期:'2019-01-03'},
{标题:'船长',起始日期:'2019-01-03',结束日期:'2019-01-04'},
]
},
]
良好的数据结构可以澄清您的代码和想法


如果你能澄清你的目标,详细说明你试图解决的问题,很高兴更新此内容。

你能提供输入数据的样本以及你期望的输出结果吗?@rayhatfield请参见编辑以任何方式链接到官员的数组?似乎你试图连接两个字符串以形成arra的名称y、 然后访问该字符串,就好像它是包含数据的数组一样。这不起作用:它将从字符串(如
array_1
)中获取一个片段,在您的示例中,这将生成
rr
,而不是您要查找的日期。我认为您需要重新格式化数据,以生成军官对象的数组属性。可选y、 也许这会有所帮助:
dates = [20190101,20190102,20190103,20190104,20190105];

officers = ['joe', 'bob', 'bill', 'jeb'];

//joe
array1_0 = [1,2,3,4,5];
array2_0 = [2,4,6,8,10];

//bob
array1_1 = [1,2,3,4,5];
array2_1 = [2,4,6,8,10];

//bill
array1_2 = [1,2,3,4,5];
array2_2 = [2,4,6,8,10];

//jeb
array1_3 = [1,2,3,4,5];
array2_3 = [2,4,6,8,10];

//DESIRED OUTPUT IF DATE
//RANGE = 20190102-20190103
array1_X = [2,3];
array2_X = [4,6];