Arrays 在数组中查找对象并从中获取值以显示在选择列表中
我有一个字符串值(例如“表1”),我需要使用它来查找数组中的特定对象,如下所示:Arrays 在数组中查找对象并从中获取值以显示在选择列表中,arrays,reactjs,javascript-objects,Arrays,Reactjs,Javascript Objects,我有一个字符串值(例如“表1”),我需要使用它来查找数组中的特定对象,如下所示: [ { lookups: [], rows: [{data: {a: 1, b: 2}}, {data: {a: 3, b: 4}}], title: "Table 1", columns: [{name: "a"}, {name: "b"}] }, { lookups: [], rows: [{data: {c: 5, d: 6}}, {data: {c: 7, d: 8}}]
[
{
lookups: [],
rows: [{data: {a: 1, b: 2}}, {data: {a: 3, b: 4}}],
title: "Table 1",
columns: [{name: "a"}, {name: "b"}]
},
{
lookups: [],
rows: [{data: {c: 5, d: 6}}, {data: {c: 7, d: 8}}],
title: "Table 2",
columns: [{name: "c"}, {name: "d"}]
}
]
找到该对象后,我需要从columns键获取值,并将其显示在选择列表中
我知道如何做第二部分,但我首先遇到的问题是如何访问对象。我正在尝试在React组件渲染中执行此操作
在此方面的任何帮助都将不胜感激
感谢您的时间。第一部分使用方法:
它将返回条件
element.title===title
为真的第一个数组元素 如果您需要从数组中获取所有具有标题:“表1”
,您可以使用(),如果您只需要标题:“表1”
的第一个项目,您可以使用()
var-App=React.createClass({
列:函数(条件){
返回此.props.data
.filter((e)=>e.title==条件)
.map(e=>e.columns)
.reduce((上一个,当前)=>上一个concat(当前),[])
.map((列,索引)=>{column.name}
)
},
render:function(){
常量条件='表1';
返回{this.columns(condition)};
}
});
常数数据=[{
查找:[],
行:[{data:{a:1,b:2},{data:{a:3,b:4}],
标题:“表1”,
列:[{name:“a”},{name:“b”}]
}, {
查找:[],
行:[{data:{c:5,d:6},{data:{c:7,d:8}],
标题:“表2”,
列:[{name:“c”},{name:“d”}]
}, {
查找:[],
行:[],
标题:“表1”,
列:[{name:“m”},{name:“n”}]
}];
ReactDOM.render(
,
document.getElementById('容器')
);代码>
下面的方法将返回具有特定值的所有元素(即在下面的情况下为isEdit:true)
下面的方法将只返回第一个元素
findArrayElementByEdit(array) {
return array.find((element) => {
return element.isEdit === true;
})
}
所以你们的问题是在数组中找到key=value的对象,对吧?!我会使用下划线u.findWhere或lodash
filterArrayElementByEdit(array) {
return array.filter((element) => {
return element.isEdit === true;
})
}
findArrayElementByEdit(array) {
return array.find((element) => {
return element.isEdit === true;
})
}