javascript - Conversion du format de données, aidez-moi s'il vous plaît
伊谢尔伦
伊谢尔伦 2017-06-12 09:29:38
0
3
902
    110000:['北京市', 1],
    110100:['北京市', 110000],
    110101:['东城区', 110100],
    110102:['西城区', 110100],
    110105:['朝阳区', 110100],
    110106:['丰台区', 110100],
    110107:['石景山区', 110100],
    110108:['海淀区', 110100],
    110109:['门头沟区', 110100],
    110111:['房山区', 110100],
    110112:['通州区', 110100],
    110113:['顺义区', 110100],
    110114:['昌平区', 110100],
    110115:['大兴区', 110100],
    110116:['怀柔区', 110100],
    110117:['平谷区', 110100],
    110199:['其它区', 110100],
    110200:['县', 110000],
    110228:['密云县', 110200],
    110229:['延庆县', 110200],
Comment convertir

en :

"86": {
    "110000": "北京市",
    "120000": "天津市",
    "130000": "河北省",
    "140000": "山西省",
    "150000": "内蒙古自治区",
    "210000": "辽宁省",
    "220000": "吉林省",
    "230000": "黑龙江省",
    "310000": "上海市",
    "320000": "江苏省",
    "330000": "浙江省",
    "340000": "安徽省",
    "350000": "福建省",
    "360000": "江西省",
    "370000": "山东省",
    "410000": "河南省",
    "420000": "湖北省",
    "430000": "湖南省",
    "440000": "广东省",
    "450000": "广西壮族自治区",
    "460000": "海南省",
    "500000": "重庆市",
    "510000": "四川省",
    "520000": "贵州省",
    "530000": "云南省",
    "540000": "西藏自治区",
    "610000": "陕西省",
    "620000": "甘肃省",
    "630000": "青海省",
    "640000": "宁夏回族自治区",
    "650000": "新疆维吾尔自治区",
    "710000": "台湾省",
    "810000": "香港特别行政区",
    "820000": "澳门特别行政区"
  },
  "110000": {
    "110100": "市辖区"
  },
  "110100": {
    "110101": "东城区",
    "110102": "西城区",
    "110105": "朝阳区",
    "110106": "丰台区",
    "110107": "石景山区",
    "110108": "海淀区",
    "110109": "门头沟区",
    "110111": "房山区",
    "110112": "通州区",
    "110113": "顺义区",
    "110114": "昌平区",
    "110115": "大兴区",
    "110116": "怀柔区",
    "110117": "平谷区",
    "110228": "密云县",
    "110229": "延庆县"
  }

Et ce format ? Ma capacité est limitée et je n’y pense vraiment pas. Ce genre de transformation peut-il être réalisé ?

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

répondre à tous(3)
扔个三星炸死你

Je ne peux pas vous donner le code de la réponse du téléphone portable, mais l'idée générale devrait être :
1. Trions d'abord vos besoins Si je comprends mal, vous n'avez pas besoin de lire ce qui suit :
Vous. Je veux rendre l'original unidimensionnel, les données sans structure hiérarchique sont séparées selon le code du pays, le code de la province et de la ville et le code de la région. La clé de la région de niveau inférieur est la clé de la province et de la ville de niveau supérieur. le code, vous pouvez passer directement de pays en province en ville, niveau par niveau Trouver une région.
2. Tout d'abord, vos données sont un objet. Chaque attribut est le code de région de la valeur correspondante, et la valeur est un tableau. Le deuxième élément est le code de son nœud parent.
3. Créez d’abord un objet vide.
4. Parcourez l'objet d'origine.
5. Chaque fois que vous obtenez un attribut de l'objet d'origine, jugez d'abord la deuxième valeur de sa valeur (c'est-à-dire le tableau binaire). S'il est 1, cela signifie qu'il s'agit d'une région de niveau supérieur, c'est-à-dire un. province ou une municipalité. Écrivez-les dans le nouveau Lors de la création de l'objet, écrivez-le sous l'attribut 86 country code,
6. Si la deuxième valeur que vous obtenez n'est pas 1, cela signifie qu'il ne s'agit pas d'une province ou d'une ville de niveau supérieur. , mais une certaine région. Accédez au nouvel objet pour voir s'il existe un tel. Si la province ou la région correspondant au code n'existe pas, créez-la dans le nouvel objet. Si elle existe, écrivez-la directement dans le code correspondant.
7. De cette façon, il peut être divisé selon le pays~province/municipalité~région
8. Je vois que vous avez également marqué spécifiquement la municipalité selon les données que vous avez fournies, si le nom de la province et le nom. de la commune sont les mêmes, ça veut dire que c'est juste la commune va bien

9. Lorsque vous appelez sur un téléphone portable, de nombreuses choses seront difficiles à comprendre. Si la méthode n'est pas claire ou erronée, veuillez l'ignorer.

左手右手慢动作

Un exemple simple est le suivant (le format des données source n'est pas JSON, donc eval est forcé dans l'implémentation simple) :

const src = `
  110000: ['北京市', 1],
  110100: ['北京市', 110000],
  110101: ['东城区', 110100],
  110102: ['西城区', 110100],
  110105: ['朝阳区', 110100],
  110106: ['丰台区', 110100],
  110107: ['石景山区', 110100],
  110108: ['海淀区', 110100],
  110109: ['门头沟区', 110100],
  110111: ['房山区', 110100],
  110112: ['通州区', 110100],
  110113: ['顺义区', 110100],
  110114: ['昌平区', 110100],
  110115: ['大兴区', 110100],
  110116: ['怀柔区', 110100],
  110117: ['平谷区', 110100],
  110199: ['其它区', 110100],
  110200: ['县', 110000],
  110228: ['密云县', 110200],
  110229: ['延庆县', 110200]
`

function convert (src) {
  // hack 将结构字符串 eval 转为对象
  const tmpObj = eval('(function () { return {' + src + '} })()')

  // 输出目标格式,硬编码一条简单数据
  const result = { 86: {}, 110000: { 110100: '市辖区' }, 110100: {} }
  // [110000, 110100...]
  const tmpArr = Object.keys(tmpObj)
  tmpArr.forEach(key => {
    result[86][key] = tmpObj[key][0]
  })
  tmpArr.forEach(key => {
    if (tmpObj[key][1] === 110100) {
      result[110100][key] = tmpObj[key][0]
    }
  })
  return result
}

console.log(convert(src))

Résultat de l'exécution :

➜  Desktop node demo
{ '86': 
   { '110000': '北京市',
     '110100': '北京市',
     '110101': '东城区',
     '110102': '西城区',
     '110105': '朝阳区',
     '110106': '丰台区',
     '110107': '石景山区',
     '110108': '海淀区',
     '110109': '门头沟区',
     '110111': '房山区',
     '110112': '通州区',
     '110113': '顺义区',
     '110114': '昌平区',
     '110115': '大兴区',
     '110116': '怀柔区',
     '110117': '平谷区',
     '110199': '其它区',
     '110200': '县',
     '110228': '密云县',
     '110229': '延庆县' },
  '110000': { '110100': '市辖区' },
  '110100': 
   { '110101': '东城区',
     '110102': '西城区',
     '110105': '朝阳区',
     '110106': '丰台区',
     '110107': '石景山区',
     '110108': '海淀区',
     '110109': '门头沟区',
     '110111': '房山区',
     '110112': '通州区',
     '110113': '顺义区',
     '110114': '昌平区',
     '110115': '大兴区',
     '110116': '怀柔区',
     '110117': '平谷区',
     '110199': '其它区' } }
淡淡烟草味

https://windqyoung.github.io/...

Convertissez à volonté.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal