직장에서 어레이와 관련된 작업을 자주 접합니다.
1. 데이터에서 x개의 고유 데이터를 무작위로 선택합니다. (PS: 아래 S.each는 KISSY.each 방법이며 for 루프로 변경할 수 있습니다.)
다음과 같이 코드 코드를 복사합니다.
/*
배열 arr에서 x개의 고유 데이터 조각을 무작위로 선택합니다.
*/
함수 myRand(arr,num){
var newArr = [];
랜드(숫자); //임의의 x
함수 랜드(k){
if(k==0){
반품;
}
var index = Math.floor(Math.random() * arr.length);
var 플래그 = true;
S.each(newArr,함수(v){
if(v == arr[인덱스]){
플래그 = 거짓;
}
});
if(플래그){
newArr.push(arr[index]);
케이--;
}
랜드(k);
}
newArr을 반환합니다.
}
2. 개체에서 x개의 고유 데이터를 무작위로 선택합니다.
다음과 같이 코드 코드를 복사합니다.
/*
객체 obj에서 x개 항목을 무작위로 선택
*/
함수 myRand(){
var S = 키시;
var 객체={
'01':{이름:'a'},
'02':{이름:'b'},
'03':{이름:'c'},
'04':{이름:'d'},
'05':{이름:'e'},
'06':{이름:'f'},
'07':{이름:'g'},
'08':{이름:'h'},
'09':{이름:'i'},
'10':{이름:'g'}
};
var arr = [];
S.each(obj,함수(v,k){
arr.push(k);
});
//무작위로 3개 선택
var newArr = myRand(arr,3);
S.each(newArr,함수(b){
console.log(obj[b]);
})
};
3. 배열에서 중복 항목 제거
다음과 같이 코드 코드를 복사합니다.
/*
배열에서 중복 제거
*/
함수 uniqArr(arr){
함수 toObject(a) {
var o = {};
for (var i=0, j=a.length; i<j; i=i+1) {
o[a[i]] = 참;
}
반환 오;
};
기능 키(o) {
var a=[], i;
for (i in o) {
if (o.hasOwnProperty(i)) { // 여기서 YUI 소스 코드에서는 lang.hasOwnProperty(o, i)입니다.
a.push(i);
}
}
반환하다;
};
반환 키(toObject(arr));
}