Tag: 函子

为什么数组上的js映射修改原始数组?

我很困惑的是map()的行为。 我有这样的对象的数组: const products = [{ …, 'productType' = 'premium', … }, …] 我将这个数组传递给一个函数,该函数应该返回相同的数组,但所有产品都是免费的: [{ …, 'productType' = 'free', … }, …] function是: const freeProduct = function(products){ return products.map(x => x.productType = "free") } 其中返回以下数组: ["free", "free", …] 所以我重写了我的function是: const freeProduct = function(products){ return products.map(x => {x.productType = "free"; return x}) } 它按照预期返回数组。 但是! 这就是我放松的时刻,在这两种情况下我的原始产品arrays被修改。 […]