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

鍍金池/ 問答/HTML/ js兩層for循環(huán)不執(zhí)行,疑似數(shù)組類型不對

js兩層for循環(huán)不執(zhí)行,疑似數(shù)組類型不對

ajax收到后臺數(shù)據(jù):

deviceCount:{陜西省: "801"}

想要變成,并替換listArr 中‘陜西’的value

[{name: '陜西', value: 886}];

var listArr = [
    {name: '北京', value: 0},
    {name: '天津', value: 0},
    {name: '河北', value: 0},
    {name: '山西', value: 0},
    {name: '內(nèi)蒙古', value: 0},
    {name: '遼寧', value: 0},
    {name: '吉林', value: 0},
    {name: '黑龍江', value: 0},
    {name: '上海', value: 0},
    {name: '江蘇', value: 0},
    {name: '浙江', value: 0},
    {name: '安徽', value: 0},
    {name: '福建', value: 0},
    {name: '江西', value: 0},
    {name: '山東', value: 0},
    {name: '河南', value: 0},
    {name: '湖北', value: 0},
    {name: '湖南', value: 0},
    {name: '廣東', value: 0},
    {name: '廣西', value: 0},
    {name: '海南', value: 0},
    {name: '四川', value: 0},
    {name: '云南', value: 0},
    {name: '西藏', value: 0},
    {name: '陜西', value: 0},
    {name: '甘肅', value: 0},
    {name: '寧夏', value: 0},
    {name: '新疆', value: 0},
    {name: '重慶', value: 0},
    {name: '青海', value: 0},
    {name: '香港', value: 0},
    {name: '臺灣', value: 0},
    {name: '貴州', value: 0}
];

函數(shù)如下:

//轉(zhuǎn)換格式
var indexArr = [];
function createObj() {
    var obj1 = {};
    for (var k in data.deviceCount) {
        obj1["name"] = k.substring(0,k.length-1);
        obj1["value"] = parseInt(data.deviceCount[k]);
    }
    indexArr.push(obj1);
};
createObj();
//替換value
(function(){
    for(var i=0;i <listArr.length;i++){
        for(var j=0;j<indexArr.length;j++){
            //console.log(x);
            if(listArr[i].name == indexArr[j].name){
                listArr[i].value = indexArr[j].value
            }
        }
    }
})();

結(jié)果for循環(huán)不執(zhí)行if,在第二個for下console也不執(zhí)行;
我自己定義了一個數(shù)組;

var indexArr = [{name: '陜西', value: 886}];

結(jié)果它執(zhí)行了if,好像是createObj()轉(zhuǎn)換出來的數(shù)組格式不對;或者哪位大佬有其他方法,可以教我一下,就是后臺傳過來值是一部分省市數(shù)據(jù),其他數(shù)據(jù)要為0;這是個測試數(shù)據(jù),后臺可能會返回:{陜西:‘861’,北京:‘210’}

回答
編輯回答
抱緊我

你把兩組數(shù)據(jù)都復(fù)制出來吧。我感覺是你的數(shù)據(jù)不對。還有一個疑問就是你為什么要改變他的數(shù)據(jù)格式。他本來的格式挺好的呀。這樣只用循環(huán)一次呀

obj= {陜西省: "801"}
var listArr = [
    {name: '陜西', value: 0},
]
listArr.map((item) => {
    return {
        value: obj[item.name+'省'],
        name: item.name
    }
})

clipboard.png

2017年3月1日 10:28
編輯回答
艷骨

就拿你上面的數(shù)據(jù)陜西省來說

listArr[i].name的值是陜西,而indexArr[j].name的值是陜西省,所以沒有走if語句

你可以

if(indexArr[j].name && indexArr[j].name.indexOf(listArr[i].name)>-1){
    //.....
}
2018年6月15日 01:46
編輯回答
失心人

樓上的兄弟們說的都很有道理。我來推薦一個比較簡單的方法吧。

var backendData = [{name: '陜西', value: 886}];

var listArr = [
    {name: '北京', value: 0},
    {name: '天津', value: 0},
    {name: '河北', value: 0},
    {name: '山西', value: 0},
    {name: '內(nèi)蒙古', value: 0},
    {name: '遼寧', value: 0},
    {name: '吉林', value: 0},
    {name: '黑龍江', value: 0},
    {name: '上海', value: 0},
    {name: '江蘇', value: 0},
    {name: '浙江', value: 0},
    {name: '安徽', value: 0},
    {name: '福建', value: 0},
    {name: '江西', value: 0},
    {name: '山東', value: 0},
    {name: '河南', value: 0},
    {name: '湖北', value: 0},
    {name: '湖南', value: 0},
    {name: '廣東', value: 0},
    {name: '廣西', value: 0},
    {name: '海南', value: 0},
    {name: '四川', value: 0},
    {name: '云南', value: 0},
    {name: '西藏', value: 0},
    {name: '陜西', value: 0},
    {name: '甘肅', value: 0},
    {name: '寧夏', value: 0},
    {name: '新疆', value: 0},
    {name: '重慶', value: 0},
    {name: '青海', value: 0},
    {name: '香港', value: 0},
    {name: '臺灣', value: 0},
    {name: '貴州', value: 0}
];

var newData = [...new Set([...listArr, ...backendData])]

2018年1月1日 22:35
編輯回答
溫衫

測試了一下,完全沒問題啊。

var data = {
    deviceCount: {
        '陜西省': 801
    }
};
var listArr = [
    { name: '北京', value: 0 },
    { name: '天津', value: 0 },
    { name: '河北', value: 0 },
    { name: '山西', value: 0 },
    { name: '內(nèi)蒙古', value: 0 },
    { name: '遼寧', value: 0 },
    { name: '吉林', value: 0 },
    { name: '黑龍江', value: 0 },
    { name: '上海', value: 0 },
    { name: '江蘇', value: 0 },
    { name: '浙江', value: 0 },
    { name: '安徽', value: 0 },
    { name: '福建', value: 0 },
    { name: '江西', value: 0 },
    { name: '山東', value: 0 },
    { name: '河南', value: 0 },
    { name: '湖北', value: 0 },
    { name: '湖南', value: 0 },
    { name: '廣東', value: 0 },
    { name: '廣西', value: 0 },
    { name: '海南', value: 0 },
    { name: '四川', value: 0 },
    { name: '云南', value: 0 },
    { name: '西藏', value: 0 },
    { name: '陜西', value: 0 },
    { name: '甘肅', value: 0 },
    { name: '寧夏', value: 0 },
    { name: '新疆', value: 0 },
    { name: '重慶', value: 0 },
    { name: '青海', value: 0 },
    { name: '香港', value: 0 },
    { name: '臺灣', value: 0 },
    { name: '貴州', value: 0 }
];

var indexArr = [];

function createObj() {
    var obj1 = {};
    for (var k in data.deviceCount) {
        obj1["name"] = k.substring(0, k.length - 1);
        obj1["value"] = parseInt(data.deviceCount[k]);
    }
    indexArr.push(obj1);
};
createObj();
//替換value
(function () {
    for (var i = 0; i < listArr.length; i++) {
        for (var j = 0; j < indexArr.length; j++) {
            //console.log(x);
            if (listArr[i].name == indexArr[j].name) {
                listArr[i].value = indexArr[j].value
            }
        }
    }
})();

console.log(listArr);

圖片描述

2017年6月26日 19:38