如何去除JavaScript数组中所有键的首尾空格?
去除对象键首尾空格的正确方法
你之前的代码没生效,问题出在两点:
forEach本身没有返回值,所以trimmedKeyData最终是undefinedk = k.trim()只是修改了循环里的临时变量,根本没改动原对象的键
推荐用Object.entries配合reduce生成一个新的处理后的对象,这是最简洁且无副作用的方式:
const trimmedKeyData = Object.entries(data).reduce((acc, [key, value]) => { acc[key.trim()] = value; return acc; }, {});
如果一定要直接修改原对象(不推荐,容易引发意外副作用),可以这么写:
const keys = Object.keys(data); keys.forEach(key => { const trimmedKey = key.trim(); if (trimmedKey !== key) { data[trimmedKey] = data[key]; delete data[key]; } });
前者会返回全新对象,原对象不受影响;后者直接修改原对象,适合必须保留原引用的场景。
内容的提问来源于stack exchange,提问作者RedQueries
相关产品推荐
相关产品推荐

