Я часто сталкиваюсь на работе с некоторыми операциями, связанными с массивами
1. Случайным образом выберите из данных x фрагментов уникальных данных (PS: S.each ниже — это метод KISSY.each, вы можете изменить его на цикл for)
Скопируйте код кода следующим образом:
/*
Случайным образом выберите x фрагментов уникальных данных из массива arr.
*/
функция myRand(arr,num){
вар newArr = [];
рандом(число); //Случайный х
функция rand(k){
если(к==0){
возвращаться;
}
var index = Math.floor(Math.random() * arr.length);
вар флаг = правда;
S.each(newArr,function(v){
if(v == arr[индекс]){
флаг = ложь;
}
});
если (флаг) {
newArr.push(arr[индекс]);
к--;
}
ранд(к);
}
вернуть новыйАрр;
}
2. Случайным образом выберите x фрагментов уникальных данных из объекта.
Скопируйте код кода следующим образом:
/*
Случайным образом выбрать x элементов из объекта obj
*/
функция myRand(){
вар S = ПОЦЕЛУЙ;
вар объект={
'01':{name:'a'},
'02':{name:'b'},
'03':{name:'c'},
'04':{name:'d'},
'05':{name:'e'},
'06':{name:'f'},
'07':{name:'g'},
'08':{name:'h'},
'09':{name:'i'},
'10':{name:'g'}
};
вар обр = [];
S.each(obj,function(v,k){
arr.push(к);
});
//Случайно выбираем 3
вар newArr = myRand(arr,3);
S.each(newArr,function(b){
console.log(obj[b]);
})
};
3. Удалить дубликаты из массива
Скопируйте код кода следующим образом:
/*
Удалить дубликаты из массива
*/
функция uniqArr(arr){
функция toObject(a) {
вар о = {};
for (var i=0, j=a.length; i<j; i=i+1) {
о[а[я]] = правда;
}
вернуться о;
};
функциональные клавиши(о) {
вар а=[], я;
для (я в о) {
if (o.hasOwnProperty(i)) { // Здесь в исходном коде YUI это lang.hasOwnProperty(o, i)
а.push(я);
}
}
вернуть а;
};
вернуть ключи (toObject (arr));
}