gpt4 book ai didi

javascript - 自定义 fromJS immutablejs 问题

转载 作者:太空宇宙 更新时间:2023-11-04 16:13:54 25 4
gpt4 key购买 nike

我创建了一个自定义 fromJS 函数,以便当我将对象转换为不可变对象(immutable对象)时,结果将仅包含 OrderedSet 和 Map(而不是列表和 Map)。

除了在下面的情况下,对象中的键称为“长度”之外,这一切都工作得很好。有什么想法可以解决当前的问题吗?

var imm = require("immutable")

function fromJS(js) {
return typeof js !== 'object' || js === null ? js :
Array.isArray(js) ?
imm.Seq(js).map(fromJS).toOrderedSet() :
imm.Seq(js).map(fromJS).toMap();
}

var output = fromJS({
measurements: {
length: 10,
weight: 30
}
}).toJS();

// output is :
{
measurements: {
0: undefined,
1: undefined
....
32: undefined
}
}

最佳答案

通过将属性 length 更改为 mLength 来完成工作。

这是JSBin

ImmutableJS 查找 length 属性来检查给定值是否为 array-like反对与否。

由于您的 measurements 对象具有属性 length,因此它认为该对象是一个 类数组 对象并继续 基于类数组类型的Seq构造,问题就开始了。

<小时/>

为了确认这一点,here是输出 Map 的 jsbin,其时间数在 measurements 对象的 length 属性中给出。

关于javascript - 自定义 fromJS immutablejs 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41222781/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com