Код: Выделить всё
(function anonymous(instance, properties, context
< /code>
) {< /p>
let seriesID = properties.seriesid;
let markerID = properties.markerid;
let duplicate = false;
if(instance.data.mainMarkers.filter(kkk => kkk.markerId === markerID).length>0){
duplicate =true;
}
instance.data.allPaneData.forEach( a=>{
if(a.name === seriesID){
if(a.markersArr.filter(aaa => aaa.markerId === markerID).length>0){
duplicate = true;
}
}
});
if(duplicate === false){
function formateTime(timestemp){
let date = new Date(timestemp);
return{
year: date.getFullYear(),
month: date.getMonth()+1,
day: date.getDate()
}
}
let markerObj = {
time: formateTime(properties.time),
position: properties.position,
color: properties.color,
shape: properties.shape,
text: properties.marker_text,
size: properties.size,
markerId : markerID,
//marker_obj : null,
}
function setObject(obj,series){
series.markerObject = obj;
}
if (seriesID !== null) {
instance.data.allPaneData.filter(item => item.name === seriesID).forEach(item2 => {
item2.markersArr.push(markerObj);
let seriesmarker = LightweightCharts.createSeriesMarkers(item2.series,item2.markersArr);
if(item2.markerObject == null){
setObject(seriesmarker,item2);
}
//item2.markerObject.setMarkers(item2.markersArr);
});
} else {
instance.data.mainMarkers.push(markerObj);
let mainMarker=LightweightCharts.createSeriesMarkers(instance.data.allSeriesData[0].series,instance.data.mainMarkers);
instance.data.markerObject = mainMarker
//instance.data.markerObject.setMarkers(instance.data.mainMarkers);
}
}
< /code>
и ниже мой код для удаления маркера из серии < /p>
(function anonymous(instance, properties, context
< /code>
) {< /p>
let seriesID = properties.seriesid;
let markerID = properties.markerid;
let newarr=[];
if (seriesID == null) {
instance.data.mainMarkers.forEach((val, index) => {
if (val.markerId === markerID) {
instance.data.mainMarkers.splice(index, 1);
}
});
instance.data.markerObject.setMarkers(instance.data.mainMarkers);
}else {
instance.data.allPaneData.forEach(chartObject => {
if (chartObject.name === seriesID) {
chartObject.markersArr.forEach((val, index) => {
if (val.markerId === markerID) {
chartObject.markersArr.splice(index, 1);
}
chartObject.markerObject.setMarkers(chartObject.markersArr);
})
}
});
}
Теперь проблема в том, что он только удаляет 1 маркер из массива, даже если я передаю пустой массив, он ничего не делает.
Подробнее здесь: https://stackoverflow.com/questions/795 ... ght-charti