Javascript迭代的对象

时间:2016-07-26 16:14:04

标签: javascript

状态变量是我正在处理的数据。数字是optionIds。

var state = {0: {classification: 'uretim', description: 'Planlı Uretim'},
                1: {classification: 'uretim', description: 'Plansız Uretim'},
                2: {classification: 'hata', description: 'Planlı Hata', color: 'red'},
                3: {classification: 'hata', description: 'Plansız Hata', color: '#ff6666'},
                4: {classification: 'yokluk', description: 'Planlı Yokluk', color: 'grey'},
                5: {classification: 'yokluk', description: 'Plansız Yokluk', color: '#D3D3D3'},
                6: {classification: 'kurulum', description: 'Planlı Kurulum', color: 'blue'},
                7: {classification: 'kurulum', description: 'Plansız Kurulum', color: '#ADD8E6'}
                };

在此函数中,正在对状态对象中的值进行分类。但目前它工作不正常。对于相同的分类,“i”变量应保持相同。例如,对于“uretim”,它不应该改变,对于0和1 optionIds必须为“0”

function createData(state, data) {

        var dataSet = [];
        var i = 0;

        for (var optionId in state) {
            if (state.hasOwnProperty(optionId)) {

                dataSet.push({
                    label: state[optionId].description,
                    //In this line "i" should be same value for the same classifications. For instance it should be 0 for "uretim"(0 and 1 optionIds)
                    data: [[i, count]]
                });
                i++;
            }
        }
        return dataSet;
}

不应更改状态变量的结构。请注意。

1 个答案:

答案 0 :(得分:1)

var state = {0: {classification: 'uretim', description: 'Planlı Uretim'},
                1: {classification: 'uretim', description: 'Plansız Uretim'},
                2: {classification: 'hata', description: 'Planlı Hata', color: 'red'},
                3: {classification: 'hata', description: 'Plansız Hata', color: '#ff6666'},
                4: {classification: 'yokluk', description: 'Planlı Yokluk', color: 'grey'},
                5: {classification: 'yokluk', description: 'Plansız Yokluk', color: '#D3D3D3'},
                6: {classification: 'kurulum', description: 'Planlı Kurulum', color: 'blue'},
                7: {classification: 'kurulum', description: 'Plansız Kurulum', color: '#ADD8E6'}
                };
function classification(state){
var dataSet = [];
        var i = 0;
    let classKeys={}
        for (var optionId in state) {

            if (state.hasOwnProperty(optionId)) {
              if(!classKeys[state[optionId].classification]){
                  classKeys[state[optionId].classification]=i
                  i++
              }
                dataSet.push({
                    label: state[optionId].description,
                    data:{classKey:classKeys[state[optionId].classification,count}

                });

            }
        }
        console.log(dataSet);

}

您需要将每个分类的0,1,2 ....保存到classKey中 希望它有点见解 干杯..