使用ramda

时间:2019-09-11 16:01:37

标签: javascript arrays reactjs object

我以这种方式有一系列对象。

0:
cardLast4Digits: "0664"
cardType: "GIFT_CARD"
__proto__: Object
1:
cardLast4Digits: "5551"
cardType: "CREDIT_CARD"
__proto__: Object

我想遍历此对象数组,并查找cardType是否为“ GIFT_CARD”。一旦找到它,我就希望得到该对象。输出应为

0:
cardLast4Digits: "0664"
cardType: "GIFT_CARD"
__proto__: Object

有人可以建议我如何使用v ramda做到这一点。

1 个答案:

答案 0 :(得分:1)

只需使用数组查找方法:https://ramdajs.com/docs/#find

Ramda:

const items = [{
  cardLast4Digits: '0664',
  cardType: 'GIFT_CARD'
}, {
  cardLast4Digits: '5551',
  cardType: 'CREDIT_CARD'
}];

const result = items.find(item => item.cardType === 'GIFT_CARD');
console.log(result);

ES6:

library(shiny)
library(shinyFiles)

ui <- fluidPage( 
  tags$head(
    tags$script('
              $(document).on("keydown", function (e) {
                Shiny.onInputChange("rightCursor", [e.which,e.timeStamp]);
              }); 
    ')
  ),
  mainPanel(
    shinyDirButton("dir", "Input directory", "Upload"),
    verbatimTextOutput("dir", placeholder = TRUE),
    uiOutput('images')
  ))

server <- function(input, output) {

  shinyDirChoose(
    input, "dir", roots = c(home = "~"), filetypes = c("png", "jpg")
  )

  folder <- reactiveVal()

  output$dir <- renderText({
    folder()
  })

  observeEvent(input$dir, {
    if (!"path" %in% names(input$dir)) return()
    home <- normalizePath("~")
    folder(
      file.path(
        home, 
        paste(unlist(input$dir$path[-1]), collapse = .Platform$file.sep)
      )
    )
  })

  files <- eventReactive(folder(), {
    list.files(folder(), full.names = TRUE)
  })

  page <- reactiveVal(1)

  output$images <- renderUI({
    req(files())
    imagename = paste0("image", page())
    imageOutput(imagename)
  })

  observeEvent(files(), {
    for (i in 1:length(files()))
    {
      print(i)
      local({
        my_i <- i
        imagename = paste0("image", my_i)
        output[[imagename]] <- 
          renderImage({
            list(src = files()[my_i], width = 400, height = 400,
                 alt = "Image failed to render")
          }, deleteFile = FALSE)
      })
    }
  })

  observeEvent(input$rightCursor,{
    page(page()+1)
  })

}

# Run the application
shinyApp(ui = ui, server = server)