Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用其他对象的过滤器创建新对象_Javascript_Reactjs - Fatal编程技术网

Javascript 使用其他对象的过滤器创建新对象

Javascript 使用其他对象的过滤器创建新对象,javascript,reactjs,Javascript,Reactjs,我有一个来自后端的对象数组,如下所示: 项目=[{ 身份证号码:0 姓名:例1 价格:15 尺寸:[10、12、15.5] 类型:[一,二] }, { 身份证号码:1 姓名:例2 价格:15 尺寸:[10、12、15.5] 类型:[一,二] } ] 我只需要格式化新对象 let item = items.find((item) => item.id === id) let formattedItem = { id: item.id, name: item.name

我有一个来自后端的对象数组,如下所示:

项目=[{ 身份证号码:0 姓名:例1 价格:15 尺寸:[10、12、15.5] 类型:[一,二] }, { 身份证号码:1 姓名:例2 价格:15 尺寸:[10、12、15.5] 类型:[一,二] }
] 我只需要格式化新对象

let item = items.find((item) => item.id === id)
let formattedItem = {
    id: item.id,
    name: item.name
    price: item.price
    size: item.sizes[0]
    type: item.types[0]
}
例如,我还要检查大小是否为有效数组

type: item.types.length ? item[0] : null

我只需要格式化新对象

let item = items.find((item) => item.id === id)
let formattedItem = {
    id: item.id,
    name: item.name
    price: item.price
    size: item.sizes[0]
    type: item.types[0]
}
例如,我还要检查大小是否为有效数组

type: item.types.length ? item[0] : null

您不应该使用硬编码索引来获取客户端中的值,这应该只在服务器端处理,但如果您想让它工作,这也可以。 如果需要类型[1]和大小[0],可以使用map来构造结果对象

let addedItem = items.find((item) => item.id === id).map(x => {
     return {
        id: x.id,
        name: x.name,
        price: x.price,
        size: x.size[0],
        type: x.type[1]
     })

您不应该使用硬编码索引来获取客户端中的值,这应该只在服务器端处理,但如果您想让它工作,这也可以。 如果需要类型[1]和大小[0],可以使用map来构造结果对象

let addedItem = items.find((item) => item.id === id).map(x => {
     return {
        id: x.id,
        name: x.name,
        price: x.price,
        size: x.size[0],
        type: x.type[1]
     })

谢谢大家。我的答覆是:

让item=items.finditem=>item.id==id 让formattedItem={ 项目 尺寸:项目。尺寸[尺寸] 类型:项。类型[类型]
} 谢谢大家。我的答覆是:

让item=items.finditem=>item.id==id 让formattedItem={ 项目 尺寸:项目。尺寸[尺寸] 类型:项。类型[类型]

}您可以只将值分配给一个新对象,或者您的问题到底是什么?您是只想通过多个参数查找一个项,还是确实想在删除其他数组属性的情况下返回一个新的对象引用?如果更容易的话,通过多个参数查找一个项会更好。我该怎么做呢?您可以只将值分配给一个新对象,或者您的问题到底是什么?您是只想通过多个参数查找一个项,还是确实想返回一个新的对象引用,同时删除其他数组属性?如果更容易的话,通过多个参数查找一个项会更好。我该怎么做呢?那么,大卫·拉西多尼亚,我的理解是正确的,如果我以友好的方式接收尺寸和类型,我可以使用尺寸:item.size[size]和类型:item.types[type]?没错。。。别忘了检查类型/大小是否为有效数组,否则会引发错误,因为您无法访问[type]of undefined例如array::find可以返回undefined,所以在尝试访问id、名称、价格、大小和类型属性之前,请记住检查返回的项是否真实,如果我收到尺寸和类型,我可以使用尺寸:item.size[size]和类型:item.types[type]?完全正确,是的。。。不要忘记检查类型/大小是否为有效数组,否则会引发错误,因为您无法访问[type]of undefined例如array::find可以返回undefined,所以在尝试访问id、名称、价格、大小和类型属性之前,请记住检查返回的项是否真实。Singh,我收到类型和大小作为道具type1,size0-只是我收到的示例而已,这样您就可以使用变量而不是硬编码的值type[1]和size[0]来键入[type_index]和size[size_index],但map是应该解决您的问题的函数。如果解决方案有效,请标记它。Singh,如果我不想按句柄列出所有参数,如何创建新对象?它不起作用-items.find.map不是函数。我想是因为items.find返回一个未排列的对象你可以使用filter而不是findSingh,我收到类型和大小作为props type1,size0-只是我收到的示例而已,所以你可以使用变量而不是硬编码的值type[1]和size[0]来键入[type_index]和size[size_index]但是map是应该解决您的问题的函数。如果解决方案有效,请标记它。Singh,如果我不想按句柄列出所有参数,如何创建新对象?它不起作用-items.find.map不是函数。我想是因为items.find返回的对象不是数组你可以用filter代替find