gpt4 book ai didi

javascript - 根据条件在对象内添加数据

转载 作者:行者123 更新时间:2023-12-01 16:16:43 25 4
gpt4 key购买 nike

我有一个应用程序,其中有两种类型的数据:

  1. 玩具
    条件:
  • 用户可以将一个人分配给其中一个玩具,具体取决于: 如果 toyType === 人的类型。例如,

  {
name: "Lisa",
age: 7,
type: "F"
},

..不能分配给玩具类型为 M 的玩具,只有 F

  • 用户可以将一个人分配给一种类型的玩具。
    我的代码:

 const info = [
{
name: "Bill",
age: 11,
type: "M"
},
{
name: "Lisa",
age: 7,
type: "F"
},
{
name: "Carl",
age: 17,
type: "M"
},
{
name: "John",
age: 8,
type: "M"
}
];
const toys = [
{
color: "red",
toyType: "M"
},
{
color: "white",
toyType: "F"
}
];

const thisPerson = { name: "Carl",age: 17};

function app(selectedtoyType) {
const result = toys.map((i) => {
if (selectedtoyType === i.toyType) {
return {
...i,
persons: toys.persons ? [...i.persons, thisPerson] : [thisPerson]
};
} else {
return { ...i };
}
});
return result;
}
console.log('1 time assign', app('M'))
console.log('2 time assign', app('M'))

我举了一个例子:const thisPerson = { name: "Carl",age: 17};,我试着给他赋值 2 次。
这里我应该只在 persons 数组中添加一个人,下次我应该在控制台中收到错误时,我也应该能够添加另一个 type M< 的人 添加到此数组,当然与之前的数组不同。
问题:我的代码有什么问题?
ps:代码只是app的模拟

最佳答案

也许你想要这样的东西

const toys = [ { color: "red", toyType: "M", }, { color: "white", toyType: "F", }, ];
let ps = {};
const person = { name: "Carl", age: 17 };

function app(person, selectedtoyType) {
if (ps[person.name]) console.log("name alreasy used");
else {
toys.forEach((t) => {
if (selectedtoyType.toUpperCase() == t.toyType && !ps[person.name]) {
ps[person.name] = { ...person, ...t };
}
});
return Object.values(ps);
}
}
console.log("1 time assign", app(person, "M"));
console.log("2 time assign", app(person, "M"));

关于javascript - 根据条件在对象内添加数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63389074/

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