Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
Sunny-117 opened this issue Nov 3, 2022 · 7 comments
Open

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

Sunny-117 opened this issue Nov 3, 2022 · 7 comments

Comments

@Sunny-117
Copy link
Owner

No description provided.

@CXGBro
Copy link

CXGBro commented Dec 25, 2022

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

@mengqiuleo
Copy link

实现一个函数,
把一个字符串数组([‘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))

@Tylermeek
Copy link

// 实现一个函数,
// 把一个字符串数组([‘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));
  

@veneno-o
Copy link
Contributor

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;
}

@kangkang123269
Copy link

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’] }

@lemon-yogurt
Copy link

lemon-yogurt commented Dec 25, 2023

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

@gswysy
Copy link

gswysy commented Feb 28, 2024

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
  }, {})
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants