亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將2個數組中的2個對象組合成一個循環?

將2個數組中的2個對象組合成一個循環?

素胚勾勒不出你 2021-05-19 17:13:14
我正在通過使用javascript組合西裝對象數組和卡片對象數組來創建一副卡片(卡片對象數組)。我正在使用forEach循環遍歷西裝,并且嵌套的是卡片的映射循環。console.log返回正確的對象以推送到新數組,但是.push()僅使用最后一個西裝和最后一個卡來追加組合的對象。我在哪里錯呢?我嘗試了多種不同的循環和方法來添加到新數組中而沒有運氣。Console.log()返回正確的值,但是我無法將正確的組合對象推送到新數組。  // Deck of Cardsvar suits = [  { suit: "clubs", color: "black" },  { suit: "spades", color: "black" },  { suit: "hearts", color: "red" },  { suit: "diamonds", color: "red" }];var family = [  { name: "2", value: 2 },  { name: "3", value: 3 },  { name: "4", value: 4 },  { name: "5", value: 5 },  { name: "6", value: 6 },  { name: "7", value: 7 },  { name: "8", value: 8 },  { name: "9", value: 9 },  { name: "10", value: 10 },  { name: "J", value: 10 },  { name: "Q", value: 10 },  { name: "K", value: 10 },  { name: "A", value: 1 },];var deck = new Array();suits.forEach(function (x) {  var arr = family.map((y) => {    var obj = Object.assign(x, y);    console.log(obj);    deck.push(obj);    return obj;  });    console.log(arr);});console.log(deck);
查看完整描述

3 回答

?
慕少森

TA貢獻2019條經驗 獲得超9個贊

嘗試Object.assign({}, x, y)代替Object.assign(x, y)。當前,您正在通過將y的所有屬性添加到x中來操縱它。


// Deck of Cards

var suits = [

    {suit: "clubs",color: "black"},

    {suit: "spades",color: "black"},

    {suit: "hearts",color: "red"},

    {suit: "diamonds",color: "red"}    

];


var family = [

    {name: "2",value: 2},

    {name: "3",value: 3},

    {name: "4",value: 4},

    {name: "5",value: 5},

    {name: "6",value: 6},

    {name: "7",value: 7},

    {name: "8",value: 8},

    {name: "9",value: 9},

    {name: "10",value: 10},

    {name: "J",value: 10},

    {name: "Q",value: 10},

    {name: "K",value: 10},

    {name: "A",value: 1},

];


var deck = new Array();


suits.forEach(function(x){


    var arr = family.map( (y) => {

        var obj = Object.assign({}, x, y); 

        deck.push(obj);

        return obj; 

    });


});


console.log(deck);


查看完整回答
反對 回復 2021-05-27
?
慕娘9325324

TA貢獻1783條經驗 獲得超4個贊

如果可以使用flatmap,那么它可以變得非常簡單:


const suits = [{ suit: "clubs", color: "black" }, { suit: "spades", color: "black" }, { suit: "hearts", color: "red" }, { suit: "diamonds", color: "red" }]

const family = [{ name: "2", value: 2 }, { name: "3", value: 3 }, { name: "4", value: 4 }, { name: "5", value: 5 }, { name: "6", value: 6 }, { name: "7", value: 7 }, { name: "8", value: 8 }, { name: "9", value: 9 }, { name: "10", value: 10 }, { name: "J", value: 10 }, { name: "Q", value: 10 }, { name: "K", value: 10 }, { name: "A", value: 1 }]


const deck = suits.flatMap(s => family.map(f => ({...s, ...f})))


console.log(deck)

附帶說明一下,訂購西服桿/鉆石/心形/黑桃似乎有很強的約定(大概是布里奇的慣例)。用英語很容易記住,因為它們是字母。


查看完整回答
反對 回復 2021-05-27
  • 3 回答
  • 0 關注
  • 206 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號