Lodash set对象 - 无法使用整数作为键创建子对象

4

我正在使用 Lodashset 方法来设置一个对象,但是遇到了一些问题,代码如下:

{
    '288452':  { 
        '57': 'value1',
        '69': 'value2',
        '01': 'value3'
    }
}

以下是我尝试的代码:
const _ = require from('lodash');

const obj = {};
_.set(obj, ['288452', '57'], 'value1');
// similarly for other values

但是这会创建一个大小为57的数组作为“ 288452”的值。

我有什么遗漏吗?这是一个错误吗?

谢谢, Sudheesh CM

2个回答

8

由于您的键是数字,请在您的情况下使用_setWith

const obj = {};
let a="288452",b="57";
_.setWith(obj, '['+a+']['+b+']', 'value1', Object);
console.log(obj);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>


如果它们都是变量,我们该如何处理呢? lodash.setWith(itemsHash, [item.ITM_CD][colorCode], null, Object); 对象的路径。这应该是一个字符串吗?- var path = [${item.ITM_CD}][${colorCode}]; lodash.setWith(itemsHash, path, null, Object); - sudheeshcm
@sudheeshcm 已更新 - Weedoze
好的。让我试试。 - sudheeshcm
@sudheeshcm 没问题。下次尝试先在互联网上搜索。我以前从未使用过Loadash,在几秒钟的互联网搜索后找到了解决方案。 - Weedoze

0

尝试使用以下语法 _.set(x, '288452.57', 'foo');


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接