Как проверить, установлен ли объект устройства хранения данных?

В поисках Релпа я нашел похожий вопрос (хотя и не такой широкий). Он просто попросил найти локальные максимумы, но обобщение на другие случаи не должно быть слишком сложным. Опрашивающий предоставил набор данных:

require(MASS)
topo.lo <- loess(z ~ x * y, topo, degree = 1, span = 0.25,
                 normalize = FALSE)
topo.mar <- list(x = seq(0, 6.5, 0.1), y = seq(0, 6.5, 0.1))
new.dat <- expand.grid(topo.mar)
topo.pred <- predict(topo.lo, new.dat)
## draw the contour map based on loess predictions


library(rgl)


persp3d(topo.mar$x, topo.mar$y, topo.pred, shade=0.5, col="blue")

И получил этот ответ (который, по общему признанию, не рассчитывает производные, а числовые производные являются лишь первыми отличиями), что и используется в этом тесте:

hasmax <- function(mtx, x, y)  if(  (mtx[x,y] > mtx[x,y-1]) &
                                    (mtx[x,y] > mtx[x,y+1]) &
                                    (mtx[x,y] > mtx[x-1,y]) &
                         (mtx[x,y] > mtx[x+1,y]) ) {return(TRUE ) } else {return(FALSE)}


for(i in 3:(dim(topo.pred)[1] -4)) {
    for(j in 3:(dim(topo.pred)[2]-4) )  {
        if( hasmax(topo.pred, i , j) ){print(c(topo.mar$x[i],topo.mar$y[j]))}  }}

Я публикую его с небольшим изменением, потому что это был мой ответ: -)

Я думаю, что могут быть пакеты, которые имеют дело с пространственными наборами данных, но я ' Я не особенно знаком, поэтому вы можете искать в представлении задач CRAN.

261
задан Sebastian Simon 6 September 2017 в 03:39
поделиться

2 ответа

Метод getItem в спецификации WebStorage явно возвращает null , если элемент не существует:

... Если данный ключ не существует в списке, связанном с объектом, то этот метод должен возвращать значение null. ...

Итак, вы можете:

if (localStorage.getItem("infiniteScrollEnabled") === null) {
  //...
}

См. Этот связанный вопрос:

461
ответ дан 23 November 2019 в 02:36
поделиться

Лучшим и Самым Безопасным путем я могу предложить, это,

if(Object.prototype.hasOwnProperty.call(localStorage, 'infiniteScrollEnabled')){
    // init variable/set default variable for item
    localStorage.setItem("infiniteScrollEnabled", true);
}

Это проходит через ESLint's no-prototype-builtins правило.

0
ответ дан 23 November 2019 в 02:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: