js 面试题

/**
     * 1. 从文本中找出单词的首字母并互换大小写(data 为示例数据结构, 实际可能更复杂)
     */
    (function () {
      let data = "this is A string for Testing";
      function findAndReverse(data) {
          let str = data.split(' ');
          for (let i = 0; i < str.length; i++) {
              if (str[i][0] >= 'a' && str[i][0] <= 'z') {
                  str[i] = str[i][0].toUpperCase() + str[i].substring(1, str[i].length);
              } else if (str[i][0] >= 'A' && str[i][0] <= 'Z') {
                  str[i] = str[i][0].toLowerCase() + str[i].substring(1, str[i].length);
              }
          }
          let arr = str.join(' ');
          console.log(arr)
      }
      findAndReverse(data)
  })();




/**
 * 3. 排序一个数组(data 为示例数据结构, 实际可能更复杂)
 *  {name: '一山', surname: '张', address: '某地', area: '北京'}
    surname, address 可能为空, area 只能是 "北京", "上海","深圳","福州", "厦门"
    ;
 */

    /**
     * 3.1   "surname" + "name" + "address" 按升序排序
     */
    (function () {
      let data = [{ name: '一山', surname: '张', address: '西藏', area: '北京' },
      { name: '一山', surname: '李', address: '厦门', area: '上海' },
      { name: '尚山', surname: '王', address: '宁夏', area: '福州' },
      { name: '一山', surname: '张', address: '福建', area: '厦门' },
      { name: '五山', surname: '张', address: '北京', area: '北京' }];

      function sortData(data) {
          var compare = function (field1, field2, field3) {
              return function (obj1, obj2) {
                  if (obj1[field1] > obj2[field1]) {
                      return -1;
                  } else if (obj1[field1] < obj2[field1]) {
                      return 1;
                  } else {
                      if (obj1[field2] > obj2[field2]) {
                          return -1;
                      } else if (obj1[field2] < obj2[field2]) {
                          return 1;
                      } else {
                          if (obj1[field3] > obj2[field3]) {
                              return 1;
                          } else if (obj1[field3] < obj2[field3]) {
                              return -1;
                          } else {
                              return 0;
                          }
                      }
                  }
              }
          }
          console.log(data.sort(compare('name', 'surname', 'address')))
      }
      sortData(data)
  })();

/**
     * 3.2  按北京 > 上海 > 深圳 > 厦门 > 福州 排序
     */
    (function () {
      let data = [{ name: '一山', surname: '张', address: '西藏', area: '北京' },
      { name: '一山', surname: '李', address: '厦门', area: '上海' },
      { name: '尚山', surname: '王', address: '宁夏', area: '福州' },
      { name: '一山', surname: '张', address: '福建', area: '厦门' },
      { name: '五山', surname: '张', address: '北京', area: '北京' }];
      
      function sortData(data) {
          var compare = function (field1) {
            return function (obj1, obj2) {
              let provience = ['北京', '上海', '深圳', '厦门', '福州']
              for (let i=0 ;i< provience.length;i++){
                  if(obj1[field1]==provience[i]&&obj2[field1]!=provience[i]){
                      return -1;
                  }else if(obj1[field1]==provience[i]&&obj2[field1]==provience[i]){
                      return 0;
                  }else if(obj1[field1]!=provience[i]&&obj2[field1]==provience[i]){
                      return 1;
                  }
              }
            }
        }
        console.log(data.sort(compare('area')))
      }
      sortData(data)
  })();




posted @ 2019-12-21 11:40  Janni  阅读(447)  评论(0)    收藏  举报