飞猪旅行前端实习笔试

  1. 现在有一个数组,内有object,如下
    const arr = [
    { value: 532, lable: 1, type: "a" },
    { value: 132, lable: 24, type: "b" },
    { value: 432, lable: 13, type: "b" },
    { value: 1812, lable: 5, type: "b" },
    { value: 1932, lable: 8, type: "c" },
    { value: 132, lable: 4, type: "a" },
    { value: 2462, lable: 9, type: "a" },
    ];
    按 type 将如上结构数据归类到一个对象结构中,并给每个type内的数据,按 value 值 大小,正序排序
    如上面的数组将输出如下结果:
    (注意:type值的数量不固定,实现方法请考虑通用性)

{
a: [
{ value: 132, lable: 4, type: 'a'},
{ value: 532, lable: 1, type: 'a'},
{ value: 2462, lable: 9, type: 'a'},
],
b: [
{ value: 132, lable: 24, type: 'b'},
{ value: 432, lable: 13, type: 'b'},
{ value: 1812, lable: 5, type: 'b'},
]
c: [
{ value: 1932, lable: 8, type: 'c'}
]
}

function dealArr(arr) {
  const res = {};
  for (let obj of arr) {
    if (!res[obj["type"]]) {
      res[obj["type"]] = [obj];
    } else {
      res[obj["type"]].push(obj);
    }
  }
  for (let key in res) {
    res[key].sort((a, b) => a.value - b.value);
  }
  return res;
}
  1. 题目
    编写一个 JavaScript 函数 getSearchParams()
    它的用途是把一个url query字符串解析为一个对象,如果某个值是一个json,也需要把它解析为一个对象
    function getSearchParams(url) {
    const arr = url.split("?")[1].split("&");
    const res = {};
    for (let item of arr) {
     let help = item.split("=");
     const [key, val] = help;
     let temp = decodeURI(val).replace(/%3A/g, ":").replace(/%2C/, ",");
     try {
       temp = JSON.parse(temp);
     } catch (e) {}
     res[key] = temp;
    }
    return JSON.stringify(res);
    }
#实习#
全部评论
整体感觉怎么样
点赞 回复
分享
发布于 2022-10-16 22:48 陕西

相关推荐

2 15 评论
分享
牛客网
牛客企业服务