微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将一个对象存储在另一个对象中

如何解决将一个对象存储在另一个对象中

我需要在另一个对象中插入一个对象,我正在使用以下逻辑:

python -m pip install cython  
python -m pip install fuzzyset

我应该如何编写这个函数,使 store.obj 与参数传递的 obj 相同?

// Create object store
const store = {}

// Function to create 'Product' Objects
function createProduct (type,name,price) {
  return { type,price }
}

// Function to add 'Product' Objects inside the 'Store' Object
function addToStore (obj) {
  store.obj = obj
  return store
}

const strawBerry = createProduct ('fruit','strawBerry','0.40')
const peach = createProduct ('fruit','peach','0.80')

addToStore(strawBerry)
addToStore(peach) 
console.log(store) // < { obj: { type: 'fruit',name: 'peach',price: '0.90' } }

解决方法

如果您的意思是希望属性名称来自调用 addToStore 时使用的变量的名称,则不能完全那样做,因为当 {{1 }} 被调用,它只接收该变量的(对对象的引用),它不接收任何关于变量本身的信息。

简单的解决方案是将名称作为第二个参数传递:

addToStore

注意使用 function addToStore(name,obj) { store[name] = obj; return store; } // ... addToStore("peach",peach); 使属性名称来自 [] 参数,而不是使用带有字面名称的 name

有一种方法可以通过使用速记属性语法,以创建临时对象的(非常小的)成本使之更加自动化。在您想要的对象周围传递一个对象包装器,其中属性的名称来自变量名称,并让 . 从该包装器中获取对象(或者可能获取所有对象,如果传递多个) :

addToStore

由于开销,您可能不想在一小时内执行数百万次的代码中执行此操作,但除此之外,我不会担心它,直到/除非您遇到性能问题你找到了它。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。