Javascript:增加结束变量
Javascript: increase end variables
我想知道一个简单的方法来在变量的末尾增加一个递增的数字,稍后查看。
例如使用 for 循环或其他方法创建 var
示例:
var example0=new Date(property.time);
var example1=new Date(property.time);
var example2=new Date(property.time);
var example3=new Date(property.time);
UPDATE
谢谢你的回答,我不知道是否要再开一个讨论,但我实际上低估了这个问题相信可以解决我的问题,实际情况更复杂,我自己解释一下:
我尝试使用这样的数组:
let startArray =[];
let endArray =[];
for(i=0; i< 4; i++) {
for(j=1; j< 5; j++) {
startArray.push new Date(demoTracks[0].properties.time[i]);
endArray.push new Date(demoTracks[0].properties.time[j]);
}
}
// Get start/end times
var timelineData = new vis.DataSet([{start: startArray[i], end:
endArray[i],
content: 'Tracks' }]);
}
但是为了我在写作时分心(我想我可以这样解决)我需要的是打破开始时间和结束时间以获得两个单独的片段.
将所有内容放入一个数组中,但没有得到结果,因为它无法将 properties.time[0] 与 properties.time[1 分开] 也需要单独递增。我展示的正是我需要的:
var startTime1 = new Date(demoTracks[0].properties.time[0]);
var endTime1 = new Date(demoTracks[0].properties.time[1]);
var startTime2 = new Date(demoTracks[0].properties.time[1]);
var endTime2 = new Date(demoTracks[0].properties.time[2]);
var startTime3 = new Date(demoTracks[0].properties.time[2]);
var endTime3 = new Date(demoTracks[0].properties.time[3]);
然后打电话进来:
var timelineData = new vis.DataSet([{start: startTime, end: endTime,
content: 'Tracks' },
为此,我的意思是如何仅增加变量的末尾(这对我来说是个问题),再次感谢。
使用您的示例数据集,下面的代码片段在评论中解释了如何使用时间数组数据为一个 demoTrack 功能创建时间轴。
var tillicum = { "type": "Feature", "geometry": { "type": "MultiPoint", "coordinates": [ [-123.77252789, 44.37857221 ], [-123.77317087, 44.37864694 ], [-123.77383407, 44.37875853 ] ] }, "properties": { "title": "tillicum", "path_options": { "color": "red" }, "time": [ 1580403952000, 1580403990000, 1580404202000 ], "altitude": [ 0, 0, 0 ], "raw": [] }, "bbox": [ [-124.09386637, 44.34348063 ], [-124.09386637, 44.56531305 ], [-123.26148271, 44.56531305 ], [-123.26148271, 44.34348063 ] ] };
var demoTracks = [tillicum];
// DOM element where the Timeline will be attached
var container = document.getElementById('timeline');
//get items array for dataset from below created function
let trackItems = getItemArray(demoTracks[0]);
console.log(trackItems);
// create dataSet
let items = new vis.DataSet(trackItems);
// Configuration for the Timeline
var timelineOptions = {};
// crate vis dataset from items returned by below function
// Create a Timeline
var timeline = new vis.Timeline(container, items, timelineOptions);
// function that returns items in format to create vis dataset element
function getItemArray(demoTracksElement) {
let timeArray = [];
try {
let iter = 0;
// set length -1 to preent adding last elemnt as timeline element in graph
for(iter; iter < demoTracksElement.properties.time.length -1 ; iter++ ) {
timeArray.push({
id: iter,
content: 'Tracks '+iter,
start: demoTracksElement.properties.time[iter],
end:demoTracksElement.properties.time[iter+1]
})
}
return timeArray;
} catch (e) {
console.log(e);
alert("something went wong with sent data");
return null;
}
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/vis/4.21.0/vis.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/vis/4.21.0/vis-timeline-graph2d.min.css" rel="stylesheet" />
<div id="timeline"></div>
我想知道一个简单的方法来在变量的末尾增加一个递增的数字,稍后查看。
例如使用 for 循环或其他方法创建 var
示例:
var example0=new Date(property.time);
var example1=new Date(property.time);
var example2=new Date(property.time);
var example3=new Date(property.time);
UPDATE
谢谢你的回答,我不知道是否要再开一个讨论,但我实际上低估了这个问题相信可以解决我的问题,实际情况更复杂,我自己解释一下: 我尝试使用这样的数组:
let startArray =[];
let endArray =[];
for(i=0; i< 4; i++) {
for(j=1; j< 5; j++) {
startArray.push new Date(demoTracks[0].properties.time[i]);
endArray.push new Date(demoTracks[0].properties.time[j]);
}
}
// Get start/end times
var timelineData = new vis.DataSet([{start: startArray[i], end:
endArray[i],
content: 'Tracks' }]);
}
但是为了我在写作时分心(我想我可以这样解决)我需要的是打破开始时间和结束时间以获得两个单独的片段.
将所有内容放入一个数组中,但没有得到结果,因为它无法将 properties.time[0] 与 properties.time[1 分开] 也需要单独递增。我展示的正是我需要的:
var startTime1 = new Date(demoTracks[0].properties.time[0]);
var endTime1 = new Date(demoTracks[0].properties.time[1]);
var startTime2 = new Date(demoTracks[0].properties.time[1]);
var endTime2 = new Date(demoTracks[0].properties.time[2]);
var startTime3 = new Date(demoTracks[0].properties.time[2]);
var endTime3 = new Date(demoTracks[0].properties.time[3]);
然后打电话进来:
var timelineData = new vis.DataSet([{start: startTime, end: endTime,
content: 'Tracks' },
为此,我的意思是如何仅增加变量的末尾(这对我来说是个问题),再次感谢。
使用您的示例数据集,下面的代码片段在评论中解释了如何使用时间数组数据为一个 demoTrack 功能创建时间轴。
var tillicum = { "type": "Feature", "geometry": { "type": "MultiPoint", "coordinates": [ [-123.77252789, 44.37857221 ], [-123.77317087, 44.37864694 ], [-123.77383407, 44.37875853 ] ] }, "properties": { "title": "tillicum", "path_options": { "color": "red" }, "time": [ 1580403952000, 1580403990000, 1580404202000 ], "altitude": [ 0, 0, 0 ], "raw": [] }, "bbox": [ [-124.09386637, 44.34348063 ], [-124.09386637, 44.56531305 ], [-123.26148271, 44.56531305 ], [-123.26148271, 44.34348063 ] ] };
var demoTracks = [tillicum];
// DOM element where the Timeline will be attached
var container = document.getElementById('timeline');
//get items array for dataset from below created function
let trackItems = getItemArray(demoTracks[0]);
console.log(trackItems);
// create dataSet
let items = new vis.DataSet(trackItems);
// Configuration for the Timeline
var timelineOptions = {};
// crate vis dataset from items returned by below function
// Create a Timeline
var timeline = new vis.Timeline(container, items, timelineOptions);
// function that returns items in format to create vis dataset element
function getItemArray(demoTracksElement) {
let timeArray = [];
try {
let iter = 0;
// set length -1 to preent adding last elemnt as timeline element in graph
for(iter; iter < demoTracksElement.properties.time.length -1 ; iter++ ) {
timeArray.push({
id: iter,
content: 'Tracks '+iter,
start: demoTracksElement.properties.time[iter],
end:demoTracksElement.properties.time[iter+1]
})
}
return timeArray;
} catch (e) {
console.log(e);
alert("something went wong with sent data");
return null;
}
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/vis/4.21.0/vis.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/vis/4.21.0/vis-timeline-graph2d.min.css" rel="stylesheet" />
<div id="timeline"></div>