开发者

Create comma separated string from 2 lists the groovy way

开发者 https://www.devze.com 2023-02-03 23:12 出处:网络
What I have so far is: def imageColumns = [\"products_image\", \"procuts_subimage1\", \"products_subimage2\", \"prodcuts_subimage3\", \"products_subimage4\"]

What I have so far is:

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(", ") 

It works but I think it could be better. Wish there was a collectWithIndex ... Any suggestions?


There's no collectWithIndex, but you can achieve the same result with a little effort:

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(", ")

This takes the list of items and a range of numbers from 0 size(list) - 1, and zips them together with transpose. Then you can just collect over that result.

0

精彩评论

暂无评论...
验证码 换一张
取 消