php 数组 indexof,js中对数组进行处理两种函数介绍( filter()函数和indexOf()函数)...

本篇文章给大家带来的内容是关于js中对数组进行处理两种函数介绍( filter()函数和indexOf()函数),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

1. 去重、过滤。/*

* @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. 遍历数组。{

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 (

{text}

)

}

},

<===================== ViewLabProjectModal ==========================================>/** 2.2 字典表的模块类型 **/

matchDictionaryList = (type, value)=>{

let moduleType = searchTextByValues(type); return (

moduleType instanceof Array ?

moduleType.map((item)=>{

if(item.value === value) { //匹配

return item.text;

}

})

: '' )}

使用:

{ this.matchDictionaryList('project_detail_type', k.type)}

{k.ageMin}- {k.ageMax}

{ this.matchDictionaryList('sex', k.sex)}

{k.minValue}-{k.maxValue}

相关推荐:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值