Javascript 如何将值从子数组传递到父数组

Javascript 如何将值从子数组传递到父数组,javascript,reactjs,Javascript,Reactjs,我的要求如下 let finalObj={ child1: { dropValue: "Room1", cond: "AND" }, child2: { inputVal: 50, cond: "OR" }, child[n]: { rangeVal: 1, cond: "" } }

我的要求如下

let finalObj={
    child1: {
        dropValue: "Room1",
        cond: "AND"
    },
   child2: {
        inputVal: 50,
        cond: "OR"
   },
   child[n]: {
        rangeVal: 1,
        cond: ""
   }
}
在父组件中,我正在传递子组件的数组(数组可以是1或多个)

如图所示,子组件由以下元素组成:输入[type=range]、输入[type=number]、下拉菜单等

父组件有一个按钮

<button>Search Location</button>
此外,我们可以再次更改该值(在单击搜索之前),搜索按钮应始终拾取每个组件的当前设置值


我不知道如何进行这项工作。任何指针都会非常有用。请提供帮助

因此您需要将组件数组更改为。。。首先,这是一个
。减少使用

const almostFinalObj=components.reduce((retval,each,i)=>{
retval['child'+i]=每个;
返回返回;
}, {});
这将产生一个像

almostFinalObj={
child1:组件1,
child2:组件2,
childN:组件,
}
现在我们可以通过它
.forEach
,将每个子组件转换为您想要的任何格式。(这一部分我不清楚,但也许你能弄清楚剩下的部分。)

Object.keys(almostFinalObj).forEach((每个,i,数组)=>{
设分量=数组[i];
数组[i]={};
component.querySelectorAll('input').forEach(e=>{
数组[i][e.name]=e.value;
});
});

这假定每个子行组件中的每个元素上都存在
name
属性。(如中所示,示例中的每个单选按钮都有
)您可以使用
id
甚至
data XXX
属性来代替
e.name

感谢快速响应,我能够创建一个almostFinalObj,其类型如下var almostFinalObj={0:{$$typeof:Symbol(react.element),键:“0”,ref:null,props:{…},type:ƒ,…}1:{$$typeof:Symbol(react.element),key:“1”,ref:null,props:{…},type:ƒ,…}}然后对于第二步,我将错误作为组件。querySelectorAll不是函数。。。Object.keys返回[“child0”,“child1”]我正在尝试下面的方法让elms=document.queryselectoral('input[name=“numbName”]”)elms.forEach(e=>{console.log(e.value)})我不确定这是否是一种从每个我不想使用ref的组件获取每个元素值的优雅方法,我还没有找到任何其他方法……你可以
const node=ReactDOM.findDOMNode(component)