我有一个对象json
,我想将其 some 个属性分配给另一个对象stn
。
stn.closingTime = json.closingTime
stn.contactEmail = json.contactEmail
stn.contactPhone = json.contactPhone
stn.openingTime = json.openingTime
stn.priceFrom = json.priceFrom
stn.priceTo = json.priceTo
我知道是否只想在全局对象上下文中拥有这些属性
{closingTime, contactEmail, contactPhone, etc....} = json
但是如何将这些属性分解为另一个命名对象? (在这种情况下,{stn
)
答案 0 :(得分:1)
尝试一下:
const json = { closingTime: 'closingTime', contactEmail: 'contactEmail', contactPhone: 'contactPhone', openingTime: 'openingTime', priceFrom: 'priceFrom', priceTo: 'priceTo' };
const {
contactPhone,
openingTime,
priceFrom,
...rest } = json;
const stn = {
contactPhone,
openingTime,
priceFrom,
};
console.log(stn);
答案 1 :(得分:1)
您可以创建一个函数并使用“分解函数的参数”。以下是从obj获取a
和b
道具的示例代码。
const obj = {a:'a',b:'b',c:'c'};
const stn = (({a,b}) => ({a,b}))(obj)
console.log(stn)
答案 2 :(得分:1)
您可以在keys
中创建所需的stn
数组。然后像这样使用Object.fromEntries()
:
Object.fromEntries(keys.map(k => [k, json[k]]))
演示:
const input = {
closingTime: 'closing',
contactEmail: 'Email',
contactPhone: 'Phone',
openingTime: 'Time',
priceFrom: 'From',
priceTo: 'To'
};
const getPartial = (obj, keys) => Object.fromEntries(keys.map(k => [k, obj[k]]))
console.log(getPartial(input, ['closingTime', 'contactEmail' ]))
console.log(getPartial(input, ['contactPhone', 'priceFrom', 'priceTo' ]))
答案 3 :(得分:0)
如果您要从json
复制属性的 all ,则可以使用stn = {...json};
。
但是,由于您只想从json
复制属性的 some 个,所以您要做的几乎是goto。
答案 4 :(得分:0)
您可以像这样使用aliases
// Grabs obj.x as as { otherName }
const { x: otherName } = obj;
答案 5 :(得分:0)
您可以创建一个def main():
intermediate_result = ne.evaluate('where(1 > 9, 9, 1) == 0')
result = ne.evaluate(f'where((1 > 9) & {intermediate_result}, 2, 3)')
print(f'Result: {result}')
函数,该函数从一个对象的键列表创建一个新对象。通过检查原始对象中是否存在键数组,将其减少为一个新对象,并将其添加,并将其各自的值添加到累积对象中。
pickBy
如果您需要原始对象的许多属性,则可以使用解构和rest参数来获取没有所需属性的新对象。
const input = {
closingTime: 'closing',
contactEmail: 'Email',
contactPhone: 'Phone',
openingTime: 'Time',
priceFrom: 'From',
priceTo: 'To'
}
const pickBy = (obj, keys) => keys.reduce((r, k) => k in obj ? {
...r, [k]: obj[k]
} : obj, {})
console.log(pickBy(input, ['closingTime', 'contactEmail']))
console.log(pickBy(input, ['contactPhone', 'priceFrom', 'priceTo']))