從策劃表中抽取不同組中的數據,然後在每個組中隨機挑選一個顯示

首先要把數據從策劃表中讀取出來,放入一個數組中,該數組爲二維數組,相同組中的數據放到一起;

遍歷該臨時數組,在每個組中在用隨機數進行抽取,抽取完之後在進行數據的填充;

一下是具體代碼

var shopInfo = require ("用你自己的策劃表數據"); //策劃的表數據

 

 

cc.Class({

extends: cc.Component,

 

properties: {

managerGoodsPre: {

default: null,

type: cc.Prefab

}

},

 

onLoad() {

// cc.log(shopInfo.data);

this.extractData();

},

 

start() {

this.schedule(function() {

// 這裏的 this 指向 component

this.refreshBtnState();

}, 10);

},

 

/**

* 在表中抽取出物品數據

*/

extractData: function () {

var _shopInfo = shopInfo.data;

var _tempArray = new Array();

 

for (var i = 0; i < _shopInfo.length; i++) {

if (_shopInfo[i].shop_type === 1) {

_tempArray.push(_shopInfo[i]);

}

}

this.dataPreprocessingInGroups(_tempArray);

},

 

/**

* 對錶中數據預處理

* 方便在填充數據時的隨機抽取

*/

dataPreprocessingInGroups: function (arg) {

var allGroupArray = new Array();

var tempData = arg;

var _group = tempData[tempData.length - 1].group;

// cc.log("all the group amount", _group);

 

//分別把每個組加入數組

for (var i = 1; i <= _group; i++) {

var _array = new Array();

 

for (let j = 0; j < tempData.length; j++) {

if (i == tempData[j].group) {

_array.push(tempData[j]);

};

}

allGroupArray.push(_array);

}

// cc.log("all Group Array", allGroupArray);

this.fillTheList(allGroupArray);

},

 

//用數據進行列表填充

fillTheList: function (dataArray) {

if (dataArray.length != 0) {

for (var i = 0; i < dataArray.length; i++) {

var tempArray = dataArray[i];

var _arrayLength = tempArray.length;

var randomIndex = Math.floor((Math.random() * _arrayLength));

// cc.log("random index", randomGroup);

// cc.log("slected group data", tempArray[randomGroup]);

let _managerMsg = managerInfo.get(tempArray[randomIndex].award_id);

let data = {

name : _managerMsg.name,

resId: _managerMsg.res_id,

price: tempArray[randomIndex].price,

priceAddCoef: tempArray[randomIndex].price_add_coef,

awardId: tempArray[randomIndex].award_id,

showState: tempArray[randomIndex].state

};

var goodsItem = cc.instantiate(this.managerGoodsPre);

goodsItem.getComponent("GoodsOfManagerItem").initData(data);

goodsItem.parent = this.node;

}

}

},

記錄一下平時的一些東西,以後回頭看看,也希望可以拋磚引玉,多學習先進的方法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章