Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将3个对象转换为多维数组_Javascript_Arrays_Reactjs_Ecmascript 6 - Fatal编程技术网

Javascript 将3个对象转换为多维数组

Javascript 将3个对象转换为多维数组,javascript,arrays,reactjs,ecmascript-6,Javascript,Arrays,Reactjs,Ecmascript 6,我有3个对象,其中包含关于svg图标(FontAwesome)的信息。每个对象都具有相同的结构,但prefix属性具有不同的值。下面的对象使用fab作为前缀,第二个far和第三个fas { "facebook": { "prefix": "fab", "iconName": "facebook-alt", "icon": [ 448, 512, [], "f26e", "M103.3 344.3c-6.5-1

我有3个对象,其中包含关于svg图标(FontAwesome)的信息。每个对象都具有相同的结构,但
prefix
属性具有不同的值。下面的对象使用
fab
作为前缀,第二个
far
和第三个
fas

{
  "facebook": {
    "prefix": "fab",
    "iconName": "facebook-alt",
    "icon": [
      448,
      512,
      [],
      "f26e",
      "M103.3 344.3c-6.5-14.2-6.9-18.3 7.4-23.1 25.6-8 8 9.2 43.2 49.2h.3v-93.9c1.2-50.2 44-92.2 97.7-92.2 53.9 0 97.7 43.5 97.7 96.8 0 63.4-60.8 113.2-128.5 93.3-10.5-4.2-2.1-31.7"
    ]
  },
  "twitter": {
    "prefix": "fab",
    "iconName": "twitter",
    "icon": [
      448,
      512,
      [],
      "f368",
      "M423.9 255.8L411 413.1c-3.3 40.7-63.9 35.1-60.6-4.9l10-122.5-41.1 2.3c10.1 20.7 15.8 43.9 15.8 68.5 0 41.2-16.1 78.7-42.3 106.5l-39.3-39.3c57.9-63.7 13.1-167.2-74-167.2-25.9 0-49.5"
    ]
  },
  "instagram": {
    "prefix": "fab",
    "iconName": "instagram",
    "icon": [
      640,
      512,
      [],
      "f369",
      "M482.2 372.1C476.5 365.2 250 75 242.3 65.5c-13.7-17.2 0-16.8 19.2-16.9 9.7-.1 106.3-.6 116.5-.6 24.1-.1 28.7.6 38.4 12.8 2.1 2.7 205.1 245.8 207.2 248.3 5.5 6.7 15.2 19.1 7.2"
    ]
  },
}
第二个目标:

{
  "arrowUp": {
    "prefix": "far",
    "iconName": "arrow-up",
    "icon": [
      448,
      512,
      [],
      "f26e",
      "M103.3 344.3c-6.5-14.2-6.9-18.3 7.4-23.1 25.6-8 8 9.2 43.2 49.2h.3v-93.9c1.2-50.2 44-92.2 97.7-92.2 53.9 0 97.7 43.5 97.7 96.8 0 63.4-60.8 113.2-128.5 93.3-10.5-4.2-2.1-31.7"
    ]
  },
  "arrowLeft": {
    "prefix": "far",
    "iconName": "arrow-left",
    "icon": [
      448,
      512,
      [],
      "f368",
      "M423.9 255.8L411 413.1c-3.3 40.7-63.9 35.1-60.6-4.9l10-122.5-41.1 2.3c10.1 20.7 15.8 43.9 15.8 68.5 0 41.2-16.1 78.7-42.3 106.5l-39.3-39.3c57.9-63.7 13.1-167.2-74-167.2-25.9 0-49.5"
    ]
  },
  "arrowRight": {
    "prefix": "far",
    "iconName": "arrow-right",
    "icon": [
      640,
      512,
      [],
      "f369",
      "M482.2 372.1C476.5 365.2 250 75 242.3 65.5c-13.7-17.2 0-16.8 19.2-16.9 9.7-.1 106.3-.6 116.5-.6 24.1-.1 28.7.6 38.4 12.8 2.1 2.7 205.1 245.8 207.2 248.3 5.5 6.7 15.2 19.1 7.2"
    ]
  },
}
第三个目标:

{
  "carrot": {
    "prefix": "fas",
    "iconName": "carrot",
    "icon": [
      448,
      512,
      [],
      "f26e",
      "M103.3 344.3c-6.5-14.2-6.9-18.3 7.4-23.1 25.6-8 8 9.2 43.2 49.2h.3v-93.9c1.2-50.2 44-92.2 97.7-92.2 53.9 0 97.7 43.5 97.7 96.8 0 63.4-60.8 113.2-128.5 93.3-10.5-4.2-2.1-31.7"
    ]
  },
  "cat": {
    "prefix": "fas",
    "iconName": "cat",
    "icon": [
      448,
      512,
      [],
      "f368",
      "M423.9 255.8L411 413.1c-3.3 40.7-63.9 35.1-60.6-4.9l10-122.5-41.1 2.3c10.1 20.7 15.8 43.9 15.8 68.5 0 41.2-16.1 78.7-42.3 106.5l-39.3-39.3c57.9-63.7 13.1-167.2-74-167.2-25.9 0-49.5"
    ]
  },
  "dog": {
    "prefix": "fas",
    "iconName": "dog",
    "icon": [
      640,
      512,
      [],
      "f369",
      "M482.2 372.1C476.5 365.2 250 75 242.3 65.5c-13.7-17.2 0-16.8 19.2-16.9 9.7-.1 106.3-.6 116.5-.6 24.1-.1 28.7.6 38.4 12.8 2.1 2.7 205.1 245.8 207.2 248.3 5.5 6.7 15.2 19.1 7.2"
    ]
  },
}
我试图将上面看到的3个对象转化为:

"brands": [
  "facebook",
  "twitter",
  "instagram",
],
"regular": [
  "arrow-up",
  "arrow-left",
  "arrow-right",
],
"solid": [
  "carrot",
  "cat",
  "dog",
],
棘手的部分是将前缀名称更改为数组的另一个值
fab
将是品牌,
far
常规,
fas
固体

我正在使用React和have Babel。这是我到目前为止所拥有的

const objects = [
    ...Object.values( fab ),
    ...Object.values( far ),
    ...Object.values( fas ),
]
它将所有对象转换为数组,但我不确定如何获得所需的结构

把前缀改成名字我相信这是个好的开始。。。这只是将
fab
更改为
brands

//find the index of object from array
const objIndex = objects.findIndex(obj => obj.value === 'fab');

// make new object of updated object   
const updatedObj = { ...objects[objIndex], prefix: 'brands'};

// make new array of objects
const updatedObjects = [
  ...objects.slice(0, objIndex),
  updatedObj,
  ...objects.slice(objIndex + 1),
];

编辑:添加了驼峰大小写到破折号的转换

如果对象总是在发布时被分割,您是否可以不执行以下操作:

const convertStrings = (str) => {
  return str.replace(/([A-Z])/g, (g) => `-${g[0].toLowerCase()}`);
};

const objects = {
  "brands": Object.keys(fab).map(convertStrings),
  "regular": Object.keys(far).map(convertStrings),
  "solid": Object.keys(fas).map(convertStrings),
}
这给了我输出:

{
  brands: ["facebook", "twitter", "instagram"],
  regular: ["arrow-up", "arrow-left", "arrow-right"],
  solid: ["carrot", "cat", "dog"]
}

您正在寻找可以轻松从中获取的对象密钥

(2)2.2 2.2 2 2 2 2 2 2 2 2 2 4 4 4 4 4 4.2 2 2 2 2 4 4 4.2 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 7 7 7 7 7 7 7 7 7 7 7 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9[448,512,[],“f368”,“M423.9 255.8L411 413.1c-3.3 40.7-63.9 35.1-60.6-4.9l10-122.5-41.1 2.3c10.1 20.7 15.8 43.9 15.8 68.5 0 41.2-16.1 78.7-42.3 106.5l-39.3-57.9-63.7 13.1-167.2-74-167.2-2-25.9 0-49.5”],“instagram”:“前缀”为“FabFabName”,“iconName”,“iconName”,“f369”,“Iconnagram”,“f369,[]:”,“M482.2 372.1C476.5 365.2 250 75 242.3 65.5c-13.7-17.2 0-16.8 19.2-16.9 9.7-.1 106.3-.6 116.5-.6 24.1-.1 28.7.6 38.4 12.8 2.1 2 205.1 245.8 207.2 248.3 5.5 6.7 15.2 19.1 7.2”] 让obj2={“arrowUp”:{“prefix”:“far”,“iconName”:“arrow up”,“icon”:[448,512,[],“f26e”,“M103.3 344.3c-6.5-14.2-6.9-18.3 7.4-23.1 25.6-8 89.2 43.2 49.2h.3v-93.9c1.2-50.2 97.2 53.0 97.7 43.5 97.5 97.7 97.8 63.4-60.8 113.2-128.5.3-10.3-4.2 49.2 49.2 49.2h.3v-93.9-93.9c1”,“iconName”,“左箭头”:“iconName”:“左箭头”:“iconna”:[448,512,[],“f368”,“M423.9 255.8L411 413.1c-3.3 40.7-63.9 35.1-60.6-4.9l10-122.5-41.1 2.3c10.1 20.7 15.8 43.9 15.8 68.5 0 41.2-16.1 78.7-42.3 106.5l-39.3-57.9-63.7 13.1-167.2-74-167.2-25.9 0-49.5”],“箭头右键“:“前缀”图标“{“极右键”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标M482.2 372.1C476.5 365.2 250 75 242.3 65.5c-13.7-17.2 0-16.8 19.2-16.9 9.7-.1 106.3-.6 116.5-.6 24.1-.1 28.7.6 38.4 12.8 2.1 2 205.1 245.8 207.2 248.3 5.5 6.7 15.2 19.1 7.2”],} 3.3.3 3.9 9 9 9 9 9 9 9 9 9 9 9 9.3 3 3.4 9 9 9 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9,512,[],“f368”M423.9 255.8L411 413.1c-3.3 40.7-63.9 35.1-60.6-4.9l10-122.5-41.1 2.3c10.1 20.7 15.8 43.9 15.8 68.5 0 41.2-16.1 78.7-42.3 106.5l-39.3-39.3c57.9-63.7 13.1-167.2-167.2-25.9 0-49.5“},“狗”:{“前缀”:“fas”,“图标”:“狗”,“图标”,“图标”,“图标”,“图标”,“图标”,“图标”,“图标”,“图标”,“图标”,“图标”,“图标”,“图标”,“图标”,“图标”,“图标”,“图标”,“图标”,“图标”,“图标”,“图标”,“图标”,“图标”,“图标”,“图标”,“图标”,“图标”,“图标”,“图标”,“图标”,“图标””M482.2 372.1C476.5 365.2 250 75 242.3 65.5c-13.7-17.2 0-16.8 19.2-16.9 9.7-.1 106.3-.6 116.5-.6 24.1-.1 28.7.6 38.4 12.8 2.1 2 205.1 245.8 207.2 248.3 5.5 6.7 15.2 19.1 7.2”],} 设op=[ {'brand':Object.keys(obj1)}, {'regular':Object.keys(obj2.map(e=>obj2[e].iconName)}, {'solid':Object.keys(obj3)} ]
console.log(op)您可以使用
Object.keys
获取键名,然后映射到值上,返回
obj[k]。iconName

(2)2.2.2 2.2 2 2 2 2 2 2 2 2 2 4 4 4 4.2 4 4.7 7 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9[448,512,[],“f368”,“M423.9 255.8L411 413.1c-3.3 40.7-63.9 35.1-60.6-4.9l10-122.5-41.1 2.3c10.1 20.7 15.8 43.9 15.8 68.5 0 41.2-16.1 78.7-42.3 106.5l-39.3 57-63.7 13.1-167.2-74-167.2-167.2-25.9 0-49.5”],“instagram”:“前缀”instagram:“fab”,“图标”,“图标”,“图标”,“图标”,“图标”,“图标”,“图标”,“图标”,“图标”,“图标”,“图标”,“图标”,“图标”,“图标”,“图标”,“图标”,“图标”,“图标”,“图标”,“图标”,“图标”,“图标”,“图标”,“图标”,“图标”,“图标”,“图标”,“图标”,“图标”,“图标”,“图标”,“图标”,“图标”,“图标”,“图标M482.2 372.1C476.5 365.2 250 75 242.3 65.5c-13.7-17.2 0-16.8 19.2-16.9 9.7-.1 106.3-.6 116.5-.6 24.1-.1 28.7.6 38.4 12.8 2.1 2 205.1 245.8 207.2 248.3 5.5 6.7 15.2 19.1 7.2”],} 让far={“arrowUp”:{“prefix”:“far”,“iconName”:“arrow up”,“icon”:[448,512,[],“f26e”,“M103.3 344.3c-6.5-14.2-6.9-18.3 7.4-23.1 25.6-8 89.2 43.2 49.2h.3v-93.9c1.2-50.2 44-92.2 97.7-92.2 53.9 097 43.5 97.7 96.8 0 63.4-60.8 113.2-128.5-128.3-10.5-4-4.2 49.2 49.2h.2”;“iconName”,“iconna”:“左箭头”:“iconName”,“iconName”:“左箭头”:“左箭头”:[448,512,[],“f368”,“M423.9 255.8L411 413.1c-3.3 40.7-63.9 35.1-60.6-4.9l10-122.5-41.1 2.3c10.1 20.7 15.8 43.9 15.8 68.5 0 41.2-16.1 78.7-42.3 106.5l-39.3-57.9-63.7 13.1-167.2-74-167.2-25.9 0-49.5”],“箭头右键“:“前缀”图标“{“极右键”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标”、“图标M482.2 372.1C476.5 365.2 250 75 242.3 65.5c-13.7-17.2 0-16.8 19.2-16.9 9.7-.1 106.3-.6 116.5-.6 24.1-.1 28.7.6 38.4 12.8 2.1 2 205.1 245.8 207.2 248.3 5.5 6.7 15.2 19.1 7.2”],} (3)3.2 4 4 4.7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 9 9 9 9 9 7 7 7 7 9 9 9 9 9 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 9 9 9 9 7 7 7 7 7 7 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7,[],“f368”M423.9 255.8L411 413.1c-3.3 4