亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

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

javascript - 一個(gè)JS的算法,求大神解答

瀏覽:120日期:2023-05-04 17:41:09

問(wèn)題描述

有如下一個(gè)數(shù)組 [ {'id': 100006, 'value': '40,1666'}, {'id': 100017, 'value': '112,113'}, ]期望輸出如下結(jié)果 [’10006:40,100017:112’, ’10006:40,100017:113’, ’10006:1666,100017:112’, ’10006:1666,100017:113’, ]

亦或者輸入三個(gè)或者N個(gè)數(shù)組[ {'id': 100006, 'value': '40,1666'}, {'id': 100017, 'value': '112,113'}, {'id': 100018, 'value': '1,2'},]能夠輸出[’10006:40,100017:112’, ’10006:40,100017:113’, ’10006:40,100018:1’, ’10006:40,100018:2’, ’10006:1666,100017:112’, ’10006:1666,100017:113’, ’10006:1666,100018:1’, ’10006:1666,100018:2’, ’100017:112,100018:1’, ’100017:112,100018:2’, ’100017:113,100018:1’, ’100017:113,100018:2’,]

請(qǐng)問(wèn)怎么實(shí)現(xiàn)這個(gè)函數(shù)?

附加:最好不論輸入數(shù)組長(zhǎng)度都能正確的輸出相應(yīng)的值(是所有數(shù)組的里的值都會(huì)被匹配一次),有些答案是固定取值0,1的,期望不要這樣。

問(wèn)題解答

回答1:

有如下一個(gè)數(shù)組 [ {'id': 100006, 'value': '40,1666'}, {'id': 100017, 'value': '112,113'}, ]期望輸出如下結(jié)果 [’10006:40,100017:112’, ’10006:40,100017:113’, ’10006:1666,100017:112’, ’10006:1666,100017:113’, ]A

var arr = [ {'id': 100006, 'value': '40,1666'}, {'id': 100017, 'value': '112,113'}]var f = arr => { return arr.map(item => {let id = item.id; return item.value.split(’,’).map(v => `${id}:${v}`); });}var main = arr => { let res = f(arr)return res[0].reduce((acc, cur) => {let temp = res[1].map(e => `${cur},${e}`);return acc.concat(temp); }, [])}ScreenShot

javascript - 一個(gè)JS的算法,求大神解答

回答2:

核心就是:第一層遍歷數(shù)組 第二層遍歷對(duì)象屬性

回答3:

var data = [ {'id': 100006, 'value': '40,1666'}, {'id': 100017, 'value': '112,113'}, ];var cache = [];var output = [];data.forEach(function(value,index,array){ //拆分value值 cache[index] = array[index].value.split(’,’); console.log(cache[index]);})for(let i=0;i<cache.length;i++){ for(let j=0;j<2;j++){let text = data[0].id + ’:’ + cache[0][i] + ’,’ + data[1].id + ’:’ + cache[1][j];output.push(text); }}output.forEach(function(value,i,arr){ console.log(arr[i]);})回答4:

試了一下仿“純函數(shù)式”的代碼:

兩兩相配(這是答主想要的效果):

function transform(list) { return list.map(i => i.value .split(’,’) .map(j => `${i.id}:${j}`) ).reduce((acc, current, i, arr) => { current.forEach(L => { arr .filter((_, k) => k > i) .forEach(j => {j.forEach(R => { acc.push(`${L},${R}`)}) }) }) return acc }, [])}

另外,附加上NN相配:

function transform(list) { return list.map(i => i.value .split(’,’) .map(j => `${i.id}:${j}`) ).reduce((l, r) => ( l.length === 0 ? r : l.map(g => r.map(j =>`${g},${j}` ) ) .reduce((l, r) => l.concat(r), [] ) ), [])}回答5:

let install = arr => { return arr.map(item => {let id = item.id;return item.value.split(',').map( val => { return `${id}:${val}`;}); });};let merge = arr => { let temp = []; for( let [i,len] = [0,arr.length]; i < len; i++ ){for( let j = i + 1; j < len; j++ ){ let ta = arr[i].reduce((pre,cur) => {return [ `${pre},${arr[j][0]}`, `${pre},${arr[j][1]}`, `${cur},${arr[j][0]}`, `${cur},${arr[j][1]}`]; }); temp = temp.concat(ta);} } return temp;};let main = (arr = []) => { let nArr = install(arr); let result = merge(nArr); console.log(result);};main([ {'id': 100006, 'value': '40,1666'}, {'id': 100017, 'value': '112,113'}, {'id': 100018, 'value': '1,2'},]);//幫2樓完善了下,直接在控制臺(tái)輸出看結(jié)果就行了

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 成人性一级视频在线观看 | 亚洲欧美在线制服丝袜国产 | 看黄色一级毛片 | 黄色直接观看 | 一级毛片美国一级j毛片不卡 | 亚洲精品国产专区91在线 | 成人免费性视频 | 国产制服 国产制服一区二区 | 国产++欧洲韩国野花视频 | 日韩啪| 国产成人精品免费影视大全 | 在线免费观看网址 | 毛片一| 成人网在线视频 | 国内精品综合九九久久精品 | a免费国产一级特黄aa大 | 免费黄色a | 亚洲一区二区在线成人 | 国产精品三级在线观看 | 国产精品入口麻豆高清在线 | 色一色综合 | 91在线视频免费播放 | 久久综合免费视频 | 午夜精品久久久 | 日韩黄色视屏 | 一级做a爰片久久毛片唾 | 亚洲黄色免费网站 | 国产亚洲精品美女一区二区 | 婷婷射 | 欧美精品久久久亚洲 | 狠狠色噜噜狠狠狠狠888奇米 | 国产日韩欧美一区二区三区在线 | 大尺度人体自拍私拍337p | 国产亚洲玖玖玖在线观看 | 成人免费的性色视频 | 亚洲黄色一级大片 | 高清国产在线播放成人 | 日本中文字幕精品理论在线 | 国产午夜免费视频片夜色 | 天天黄色片 | 精品欧美一区二区三区在线 |