Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.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
Arrays 在数组中查找对象并从中获取值以显示在选择列表中_Arrays_Reactjs_Javascript Objects - Fatal编程技术网

Arrays 在数组中查找对象并从中获取值以显示在选择列表中

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}}]

我有一个字符串值(例如“表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}}],
  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;
    })
  }