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 (field1field2field3) {
              return function (obj1obj2) {
                  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 (obj1obj2) {
              let provience = ['北京''上海''深圳''厦门''福州']
              for (let i=0 ;iprovience.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  阅读(433)  评论(0)    收藏  举报