Создать разделенную запятыми строку из 2 списков - PullRequest
2 голосов
/ 14 января 2011

То, что у меня есть, это:

def imageColumns = ["products_image", "procuts_subimage1", "products_subimage2", "prodcuts_subimage3", "products_subimage4"]    
def imageValues = ["1.jpg","2.jpg","3.jpg"]
def imageColumnsValues = []

// only care for columns with values
imageValues.eachWithIndex { image,i ->
  imageColumnsValues <<  "${imageColumns[i]} = '${image}'"
}

println  imageColumnValuePair.join(", ") 

Это работает, но я думаю, что могло бы быть и лучше. Хотелось бы, чтобы был сбор с Index ... Есть предложения?

1 Ответ

6 голосов
/ 14 января 2011

Нет collectWithIndex, но вы можете достичь того же результата с небольшим усилием:

def imageColumns = ["products_image", "procuts_subimage1", "products_subimage2", "prodcuts_subimage3", "products_subimage4"]
def imageValues = ["1.jpg","2.jpg","3.jpg"]

def imageColumnsValues = [imageValues, 0..<imageValues.size()].transpose().collect { image, i ->
    "${imageColumns[i]} = '${image}'"
}

println imageColumnsValues.join(", ")

Это берет список предметов и диапазон чисел от 0 size (list) - 1, и zipsих вместе с transpose.Тогда вы можете просто собрать этот результат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...