js-challenges icon indicating copy to clipboard operation
js-challenges copied to clipboard

['zm', 'za', 'b', 'lm', 'ln', 'k']

Open Sunny-117 opened this issue 3 years ago • 10 comments

Sunny-117 avatar Nov 03 '22 08:11 Sunny-117

为啥这题没有题目描述,漏掉了吗😂

CXGBro avatar Dec 25 '22 06:12 CXGBro

实现一个函数, 把一个字符串数组([‘zm’, ‘za’, ‘b’, ‘lm’, ‘ln’, ‘k’]) 格式化成一个对象 { ‘b’: [‘b’], ‘k’: [‘k’], ‘l’: [‘lm’, ‘ln’], ‘z’: [‘za’, ‘zm’] }


const arr = ['zm', 'za', 'b', 'lm', 'ln', 'k']

function parse(arr){
  let obj = {}
  arr.forEach(item => {
    let key = item.slice(0,1)
    obj[key] = [];
  });
  for(let str of arr){
    for(let index in obj){
      if(str.slice(0,1) == index){
        obj[index].push(str);
      }
    }
  }
  return obj;
}
console.log(parse(arr))

mengqiuleo avatar Jan 23 '23 14:01 mengqiuleo

// 实现一个函数,
// 把一个字符串数组([‘zm’, ‘za’, ‘b’, ‘lm’, ‘ln’, ‘k’]) 格式化成一个对象
// { ‘b’: [‘b’], ‘k’: [‘k’], ‘l’: [‘lm’, ‘ln’], ‘z’: [‘za’, ‘zm’] }

function toObj(arr) {
    let map = new Map();
    for (const str of arr) {
      let char = str[0];
      if (map.has(char)) {
        let temp = map.get(char);
        temp.push(str);
        map.set(char, temp);
      } else map.set(char, [str]);
    }
    let res = {};
    map.forEach((val, key) => {
      res[key] = val;
    });
    // console.log(res);
    return res
  }
  
  let arr = ["zm", "za", "b", "lm", "ln", "k"];
  console.log(toObj(arr));
  

Tylermeek avatar Feb 21 '23 12:02 Tylermeek

function format(arr){
    const res = {};
    for(let item of arr){
        const char = item.slice(0, 1);
        !res[char] ? (res[char] = [item]) : (res[char].push(item));
    }
    return res;
}

veneno-o avatar Mar 11 '23 01:03 veneno-o

function formatArrayToObject(arr) {
    var result = {};
    for (var i = 0; i < arr.length; i++) {
        var firstLetter = arr[i][0]; // 获取字符串的第一个字符
        if (!result[firstLetter]) { 
            result[firstLetter] = []; // 如果结果对象中还没有这个字符作为属性,则添加它,并初始化为空数组
        }
        result[firstLetter].push(arr[i]); // 将当前字符串添加到对应的数组中
    }
    
    // 对每个键值对应的数组进行排序
    for(var key in result){
      result[key].sort();
    }

    return result;
}

console.log(formatArrayToObject(['zm', 'za', 'b', 'lm', 'ln', 'k'])); // { ‘b’: [‘b’], ‘k’: [‘k’], ‘l’: [‘lm’, ‘ln’], ‘z’: [‘za’, ‘zm’] }

kangkang123269 avatar Sep 11 '23 08:09 kangkang123269

function toObj(arr) {
    let obj = {};
    arr.forEach(item => {
        let letter = item.charAt(0);
        obj[letter] = obj[letter] !== undefined ? [...obj[letter], item] : [item];
    })
    return obj;
}

lemon-yogurt avatar Dec 25 '23 09:12 lemon-yogurt

function format(arr) {
  return arr.reduce((a, b) => {
    let s = b[0]
    if (a[s]) {
      a[s].push(b)
    } else {
      a[s] = [b]
    }
    return a
  }, {})
}

Aurora-GSW avatar Feb 28 '24 12:02 Aurora-GSW