React js常用方法
阿新 • • 發佈:2018-12-29
//查詢陣列中的匹配物件,並返回
let changeItem = this.state.filter.filter(item => {
return item.value == value;
});
console.log(changeItem[0]);
//陣列放值
let userIds = [];
let hasAssignUsers = [{id:1,name:2},{id:2,name:2}]
//方法一:for迴圈
if(hasAssignUsers){
for(let item of hasAssignUsers) {
userIds.push (item.id)
}
}
//方法二:concat()方法
userIds = userIds.concat(hasAssignUsers);
console.log(userIds);
//渲染頁面
const listItems = hasAssignUsers.map((item) =>
<Tag key={item.id.toString()} value={item.id.toString()} shape="deletable" type="primary" onClose={this.onClose} >
{ item.userName}
</Tag>
);
//移除陣列物件中的匹配的物件
//方法一:(普通資料型別)
remove = (arr, id) =>{
var newarr = arr.slice(0);
for(var i=0;i<newarr.length;i++){
if(newarr[i] == id){
newarr.splice(i,1);
i--;
}
}
return newarr;
};
//方法二:(物件)
removeObj = (arr, id) =>{
var newarr = arr.slice(0);
for(var i=0;i<newarr.length;i++){
if(newarr[i].id == id){
newarr.splice(i,1);
i--;
}
}
return newarr;
};
//陣列是否存在某值判斷
1.javascript的indexOf()方法
var arr_data = [1,2,3];
arr_data.indexOf(1); //如果存在返回值的下標,不存在返回-1
4.arr.findIndex()返回第一個符合條件的陣列元素的位置,如果所有的元素都不符合條件,則返回-1.
注意:find(),findIndex()彌補了index的不足:(即判斷NAN)
[NaN].indexOf(NaN) // -1
[NaN].findIndex(y => Object.is(NaN, y))// 0
//陣列物件去除重複
//方法一:(普通資料型別陣列去重)
let has = [1,2,3]
let add = [2,3,4]
has = has.concat(add)
console.log(has) //1,2,3,2,3,4
has = [...new Set(has)]
console.log(has) //1,2,3,4
//方法二:(物件陣列去重)
let arr1 = [{id:1,name:'1'},{id:2,name:'2'},{id:3,name:'3'}];
let arr2 = [{id:2,name:'2'},{id:3,name:'3'},{id:4,name:'4'}];
arr1 = arr1.concat(arr2);
arr1 = uq(arr1);
uq = (array) =>{
var del = [];
for (var i = 0, arrayLen = array.length; i < arrayLen; i++) {
for (var j = 0, delLen = del.length; j < delLen; j++ ) {
if (array[i].id === del[j].id) {
break;
}
}
if (j === delLen) {
del.push(array[i])
}
}
return del;
};