【问题标题】:Removing first character of each value in a object [duplicate]删除对象中每个值的第一个字符[重复]
【发布时间】:2019-11-12 17:17:54
【问题描述】:

我拥有的是:

routeLinks = {
    Store: '/store',
    Department: '/department',
    Home: '/home'
}

我想要的是:

routeLinks = {
    Store: 'store',
    Department: 'department',
    Home: 'home'
}

即已删除第一个字符的修改对象值

【问题讨论】:

    标签: javascript object


    【解决方案1】:

    您可以使用for...in 循环和substring 值循环对象:

    var routeLinks = {
      Store: '/store',
      Department: '/department',
      Home: '/home'
    }
    for(var k in routeLinks){
      routeLinks[k] = routeLinks[k].substring(1);
    }
    console.log(routeLinks);

    更新:使用forEach() 和箭头函数 (=>) 的解决方案

    var routeLinks = {
      Store: '/store',
      Department: '/department',
      Home: '/home'
    };
    Object.keys(routeLinks).forEach(k => routeLinks[k] = routeLinks[k].substring(1));
    console.log(routeLinks);

    【讨论】:

    • 您能推荐一个使用 lambda 表达式而不是 for 循环的解决方案吗?
    • @AshishKumar,请看第二个答案:)
    【解决方案2】:

    这是一个不会改变输入的函数式版本

    routeLinks = {
        Store: '/store',
        Department: '/department',
        Home: '/home'
    };
    
    const trimStart = obj => Object.keys(obj).reduce((result, key) => ({...result, [key]: obj[key].substr(1) }), {});
    
    console.log(trimStart(routeLinks));

    【讨论】:

      【解决方案3】:

      使用slice:

      const routeLinks = { Store: '/store', Department: '/department', Home: '/home' };
      
      const res = Object.entries(routeLinks).reduce((a, [k, v]) => (a[k] = v.slice(1), a), {});
      
      console.log(res);

      或者直接使用for...in:

      const routeLinks = { Store: '/store', Department: '/department', Home: '/home' };
      
      for (let k in routeLinks) {
        routeLinks[k] = routeLinks[k].slice(1);
      }
      
      console.log(routeLinks);

      【讨论】:

      • 第一个解决方案出现错误:“ObjectConstructor”类型上不存在属性“条目”。
      • 你使用的是什么环境?打字稿?节点?
      • 我正在使用打字稿
      • 请参阅 here 了解如何解决此问题。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-05
      相关资源
      最近更新 更多