Cet article vous présente une introduction à deux fonctions de traitement des tableaux dans js (fonction filter() et fonction indexOf()). Il a une certaine valeur de référence. Les amis dans le besoin pourront s'y référer.
1. Déduplication et filtrage.
/* * @interface Grid 1.行更新 * */ handleGridRowsUpdated = ({fromRow, toRow, updated })=> { console.log('1.handleGridRowsUpdated',arguments) let rows = this.state.rows; for (let i = fromRow; i <= toRow; i++) { let rowToUpdate = rows[i]; let updatedRow = React.addons.update(rowToUpdate, {$merge: updated}); rows[i] = updatedRow; } this.setState({ rows }); }; /* * @interface 2.选中行接口 * @param {Array} 选中的行 * */ onRowsSelected = (rows ) =>{ /*新增选择的行*/ //进行复选。 this.setState( { selectedIds: this.state.selectedIds.concat( rows.map(r => r.row[this.props.rowKey])), }); this.setState({ selectedRows: this.state.selectedRows.concat( rows.map(r => r.row)), }); //进行单选 /* this.setState({ selectedIds: rows.map(r => r.row[this.props.rowKey]), }); this.setState({ selectedRows: rows.map(r => r.row), });*/ }; /* * @interface 3.取消选中行接口 * @param {Array} 取消选中的行 * */ onRowsDeselected = (rows /*取消选择的行*/) =>{ let rowIds = rows.map(r => r.row[this.props.rowKey]); this.setState({ selectedIds: this.state.selectedIds.filter(i => rowIds.indexOf(i) === -1 ), // }); this.setState({ selectedRows: this.state.selectedRows.filter(r => rowIds.indexOf(r[this.props.rowKey]) === -1 ) }); }; /** * @interface 4.行选中接口 * */ onRowClick = (rowIdx, clickedRow)=>{ //console.log('选中行', rowIdx,'_行数据 ', clickedRow); // case1. 如果是全选操作,跳过会自动调用onRowsSelected方法,如果是单选操作请隐藏全选checkbox视图操作 if(rowIdx === -1){ return; } // case2. 不是全选操作 const hasSelected = this.state.selectedRows.some((item)=>{ return item[this.props.rowKey] === clickedRow[this.props.rowKey] }); if(hasSelected){ let rowIds = clickedRow[this.props.rowKey]; //console.log('选中rowIds', rowIds ); this.setState({ selectedIds: this.state.selectedIds.filter(i => rowIds.toString().indexOf(i) === -1 ) }); this.setState({ selectedRows: this.state.selectedRows.filter(r => rowIds.toString().indexOf(r[this.props.rowKey]) === -1 ) }); }else{ // case2-case1. 采用赋值,如果是只能选中一行采用赋值,如果是合并选中行,采用concat方法来合并操作 this.setState({selectedIds: [clickedRow[this.props.rowKey]]}); this.setState({selectedRows: [clickedRow]}); } };
2. Parcourez le tableau.
{ title: '类型', dataIndex: 'type', key: 'type', width: 80, sortable: false, render: (value, record, i)=>{ //类型模块 let _arr =[], text=''; _arr = searchTextByValues('doctor_advice_type');//模块名称---匹配字典表。 if(_arr.length > 0) { _arr.map((item)=> { if (value === item.value) { text = item.text; return } }) } return ( <span>{text}</span> ) } },
<===================== ViewLabProjectModal ================= =========================>
/** 2.2 字典表的模块类型 **/ matchDictionaryList = (type, value)=>{ let moduleType = searchTextByValues(type); return ( moduleType instanceof Array ? moduleType.map((item)=>{ if(item.value === value) { //匹配 return item.text; } }) : '' )}
Utilisation :
<td><p className={`${inlineTrCls}`}>{ this.matchDictionaryList('project_detail_type', k.type)}</p></td> <td><p className={`${inlineTrCls}`}>{k.ageMin}- {k.ageMax}</p> </td> <td><p className={`${inlineTrCls}`}>{ this.matchDictionaryList('sex', k.sex)}</p></td> <td><p className={`${inlineTrCls}`}>{k.minValue}-{k.maxValue}</p></td>
Recommandations associées :
Fonction de traitement du tableau JS (Array) organisation_connaissances de base
Comment js obtient un tableau et traite un tableau php
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!