在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ 如何實現(xiàn)數(shù)組的笛卡爾積

如何實現(xiàn)數(shù)組的笛卡爾積

問題背景: 開發(fā)中遇到這種需求,一個數(shù)組中是如下格式的對象,能不能根據(jù) sidePos 的不同做笛卡爾積運算拿到如下的兩兩不同的 sidePos 字段的字符串。 test 字段沒有任何含義,僅表示字段名

let arr = [
    {sidePos: "百", val: 0,?…},
    {sidePos: "十", val: 1,?…},
    {sidePos: "百", val: 2,?…},
    {sidePos: "百", val: 3,?…},
    {sidePos: "十", val: 4,?…}
    ...
]

現(xiàn)在不知道怎么能給這個數(shù)組求笛卡爾積,拿到這樣的字段

item.value = `{"test": {"sidePos": '百', "val": 0}, {"sidePos": '十', "val": 1}}`
item.value = `{"test": {"sidePos": '百', "val": 0}, {"sidePos": '十', "val": 4}}`
item.value = `{"test": {"sidePos": '百', "val": 2}, {"sidePos": '十', "val": 1}}`
item.value = `{"test": {"sidePos": '百', "val": 2}, {"sidePos": '十', "val": 4}}`
item.value = `{"test": {"sidePos": '百', "val": 3}, {"sidePos": '十', "val": 1}}`
item.value = `{"test": {"sidePos": '百', "val": 3}, {"sidePos": '十', "val": 4}}`

新手求指教~

回答
編輯回答
懷中人
  1. 把“百”放到一個數(shù)組中,“十”放到另一個數(shù)組中
  2. 兩層循環(huán)組合成n*m個元素的結果數(shù)組

偽代碼:

for each i in 百
    for each j in 十
        result.push(i + j)

另一種實現(xiàn)方式:

  1. 兩層循環(huán),內層循環(huán)中判斷兩個元素是否相同,不相同則組合,相同則略過

偽代碼:

for each i in arr
    for each j in arr
        if (i.sidePos != j.sidePos)
            result.push(i + j)
2017年3月25日 01:07
編輯回答
久舊酒

沒看懂你這是什么

2017年7月5日 08:50