find()、 indexOf()
find():数组方法,返回通过测试的数组的第一个元素的值
- 当数组中的元素在测试条件时返回 true 时, find() 返回符合条件的元素,之后的值不会再调用执行函数。
- 如果没有符合条件的元素返回 undefined
indexOf(): JavaScript String 对象的indexOf()方法可返回某个指定的字符串值在字符串中首次出现的位置。
示例如下:
先伪造数据:: 一个数组里面5个对象
let headColumns = [{
label: '单据编号',
id: 'requisitionNumber',
value:'-',
span: 4,
}, {
label: '申请日期',
id:'requisitionDate',
span: 4,
}, {
id:'createdBy',
label: '创建人',
span: 3,
}, {
id:'companyName',
label: '机构',
span: 7,
},{
id:'departmentName',
label: '责任中心',
span: 5,
}],
使用find方法打印一下headColumns的数据,可以看到find方接收一个方法,它的参数就是数组的每一个元素
headColumns.find(o => console.log(o))
// {label: "单据编号", id: "requisitionNumber", value: "-", span: 4}
// {label: "申请日期", id: "requisitionDate", span: 4}
// {id: "createdBy", label: "创建人", span: 3}
// {id: "companyName", label: "机构", span: 7}
// {id: "departmentName", label: "责任中心", span: 5}
在实际中当我们因为某个条件需要为id = createdBy这个数据所在的对象里面的value属性重新赋值的时候,就可以用如下的方式
let obj = headColumns.find(o => o.id === 'createdBy')
// {id: "createdBy", label: "创建人", span: 3}
let i = headColumns.indexOf(obj)
// 2
headColumns[i].value = '张三';