国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

javascript - 一個(gè)集合的元素均分給另一個(gè)數(shù)組對(duì)象, 有什么方法比較簡(jiǎn)便?

瀏覽:128日期:2023-11-24 13:38:06

問(wèn)題描述

數(shù)組A=['G','D','B','H'] , 元素個(gè)數(shù)不定, 元素內(nèi)容可以是任意字符

集合B=[{'id':'a',item:''},{'id':'a=b',item:''}], 數(shù)量不定, 結(jié)構(gòu)固定

現(xiàn)在要把A中的元素均分給B中的item,分到多個(gè)時(shí)用逗號(hào)分隔.

對(duì)于A的元素個(gè)數(shù)小于或大于B的長(zhǎng)度時(shí), 只要求A要全部在B里出現(xiàn)就行了, 集合B的item至少要分到一個(gè)元素, 最好均分, 但集合B里的每個(gè)item不能有重復(fù)元素

有什么方法比較簡(jiǎn)便?

問(wèn)題解答

回答1:

已經(jīng)解決了

import com.google.common.collect.Lists;import com.google.common.collect.Maps;import com.google.common.collect.Sets;import org.apache.commons.collections.CollectionUtils;import org.apache.commons.lang3.RandomStringUtils;import org.apache.commons.lang3.RandomUtils;import org.apache.commons.lang3.StringUtils;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.Set;/** * Created by YSTYLE on 2017-04-17 0017. */public class TEst { private static List<String> list = Lists.newArrayList(); private static List<Map> los = Lists.newArrayList(); public static void main(String[] args) {init();List<String> augmented = list;int groupCount = los.size();if (list.size() < groupCount){ augmented = Augmented(list, groupCount);}List<List<String>> chunk = chunk2(augmented, groupCount);for (int i = 0; i < los.size(); i++) { los.get(i).put('item', StringUtils.join(chunk.get(i),',') );}System.out.println(los); } // 初始化測(cè)試數(shù)據(jù) private static void init (){int losCount = RandomUtils.nextInt(1,10);int listCount = RandomUtils.nextInt(1,10);for (int i = 0; i < listCount ; i++) { list.add(RandomStringUtils.randomAlphabetic(4));}for (int i = 0; i < losCount; i++) { Map<String,Integer> map = new HashMap<String, Integer>(); map.put('id',RandomUtils.nextInt(10000,99999)); los.add(map);}System.out.println('生成的數(shù)組: ' + list+' 數(shù)量: '+listCount);System.out.println('生成的對(duì)象數(shù)量: ' + los.size()); } // 分組數(shù)據(jù) public static <T> List<List<T>> chunk2(List<T> list, int group){if (CollectionUtils.isEmpty(list)){ return Lists.newArrayList();}List<List<T>> result = Lists.newArrayList();Map<Integer,Set<T>> temp = Maps.newHashMap();for (int i = 0; i < list.size(); i++) { if (temp.containsKey(i%group)) {Set<T> ts = temp.get(i % group);ts.add(list.get(i));temp.put(i%group,ts); }else {Set<T> ts = Sets.newHashSet();ts.add(list.get(i));temp.put(i % group,ts); }}for (Set<T> ts : temp.values()) { result.add(Lists.newArrayList(ts));}return result; } // 填充數(shù)據(jù) public static <T> List<T> Augmented(List<T> list ,int size){int length = CollectionUtils.isEmpty(list)?0:list.size();if (length<1){ return Lists.newArrayList();}List<T> result = Lists.newArrayList(list);if (length > size){ return result;}int count = size - length;for (int i = 0; i < count; i++) { result.add(list.get(RandomUtils.nextInt(0, length)));}return result; }}回答2:

1.A.length<=B.length 對(duì)A循環(huán),直接賦值2.A.length>B.length對(duì)B循環(huán)let size = Math.floor(A.length/B.length)取整for(let i in B){數(shù)組劃分 if(i==B.lenght-1){ B[i].item = A.splice(Start) }else{ let start = 0; B[i].item = A.splice(start,start + size)) start = start + 4; }}

標(biāo)簽: JavaScript
主站蜘蛛池模板: 国产成人亚洲精品一区二区在线看 | 京东一热本色道久久爱 | 国产欧美日韩精品第三区 | 日本aaaa片毛片免费观看 | 久久久久日韩精品无 | 国产成人一级 | 国产成人亚洲综合网站不卡 | 国内自拍网 | 国产真真人女人特级毛片 | 欧美日韩一区二区在线观看视频 | 亚洲一区不卡 | 成人免费网站 | 一级毛片免费播放视频 | 男女无遮挡拍拍拍免费1000 | 国产欧美日韩在线观看一区二区三区 | 国产一级精品高清一级毛片 | 国产日本在线视频 | 欧美日韩成人午夜免费 | 欧美a欧美1级 | 萌白酱福利视频在线网站 | 日本a一级片 | www.乱| 日韩中文字幕视频 | 国产手机国产手机在线 | 欧美激情毛片裸推荐 | 国产a级午夜毛片 | 色网址在线观看 | 123成人网| 日韩一区二区中文字幕 | 国产亚洲精品久久久久久午夜 | 亚州一级毛片在线 | 日韩欧美一区二区三区在线观看 | 国产精品久久久久久久久久日本 | 欧美野外性k8播放性迷宫 | 美女和男人免费网站视频 | 免费人成在线观看视频不卡 | 久草国产在线 | 免费播放特黄特色毛片 | 黑人黄色毛片 | 欧美大片欧美毛片大片 | 成人国产精品免费软件 |