編寫一個(gè)函數(shù),實(shí)現(xiàn)數(shù)組去重
- 要求不能使用系統(tǒng)方法
function arr_unique(arr) {
//定義一個(gè)新數(shù)組,用于存放去重后的元素
var newArr = [];
for (i = 0; i < arr.length; i++) {
//1-假設(shè)新數(shù)組中不存在當(dāng)前元素
var flag = false;
for (var j = 0; j < newArr.length; j++) {
//2-if條件一旦成立,說明我們的假設(shè)是錯(cuò)誤的,所以立馬否定我們的假設(shè)
if (arr[i] == newArr[j]) {
flag = true;
break;
}
}
//3-將flag為false的元素加入新數(shù)組中并返回
if (flag == false) {
newArr[newArr.length] = arr[i];
}
}
return newArr;
}
編寫一個(gè)函數(shù), 判斷一個(gè)數(shù)是不是質(zhì)數(shù)(素?cái)?shù))
- 方案1:
function zhishu(n) {
var count = 0;
for (var i = 1; i <= n; i++) {
if (n % i == 0) {
count++
}
}
if (count <= 2) { //是質(zhì)數(shù)
return true;
} else { //不是質(zhì)數(shù)
return false;
}
}
- 方案2:
function zhishu2(n) {
//1-假設(shè)是質(zhì)數(shù)
var flag = true;
//2-從2-(n-1)中,如若能找到一個(gè)被n整除的數(shù),說明n不是質(zhì)數(shù)
for (var i = 2; i < n; i++) {
if (n % i == 0) {
flag = false;
}
}
return flag;
}
編寫一個(gè)函數(shù), 實(shí)現(xiàn)求兩個(gè)一維數(shù)組的補(bǔ)集
- 前提條件:arr2是arr1的子集
function getDiff(arr1, arr2) {
var diffArr = [];
for (var i = 0; i < arr1.length; i++) {
var flag = false;
for (var j = 0; j < arr2.length; j++) {
if (arr1[i] == arr2[j]) {
flag = true;
}
}
if (flag == false) {
diffArr[diffArr.length] = arr1[i];
}
}
return diffArr;
}
編寫一個(gè)函數(shù), 實(shí)現(xiàn)求兩個(gè)任意正整數(shù)的最大公約數(shù)
function getMax(min,max){
//1-用于存放min和max的所有公約數(shù)
var arr=[];
for(i=1;i<=min;i++){
if(min%i==0&&max%i==0){
arr[arr.length]=i;
}
}
//2-取出數(shù)組最后一項(xiàng),即為最大公約數(shù)
return arr[arr.length-1];
}
編寫一個(gè)函數(shù), 實(shí)現(xiàn)求兩個(gè)任意正整數(shù)的雖小公倍數(shù)
function getMin(min,max){
//記錄循環(huán)次數(shù)
var count=0;
//用于保存min的倍數(shù)
var times;
for(var i=min;i<=max;i++){
//times表示min(較小數(shù))的倍數(shù);min的倍數(shù)肯定比min本身要大
times=min*i;
count++;
if(times%max==0){
break;
}
}
console.log('循環(huán)執(zhí)行次數(shù): '+count);
return times;
}
編寫一個(gè)函數(shù), 實(shí)現(xiàn)求兩個(gè)數(shù)組的交集
function getMixed(arr1,arr2) {
var obj = {};
var mixed=[];
for (var i = 0; i < arr1.length; i++) {
if(!obj[arr1[i]]){
obj[arr1[i]]=1;
}else{
obj[arr1[i]]++;
mixed[mixed.length]=arr1[i];
}
}
for(var j=0;j<arr2.length;j++){
if(!obj[arr2[j]]){
obj[arr2[j]]=1;
}else{
obj[arr2[j]]++;
if(obj[arr2[j]]==2){
mixed[mixed.length]=arr2[j];
}
}
}
return mixed;
}
編寫一個(gè)函數(shù), 實(shí)現(xiàn)求兩個(gè)數(shù)組的并集
function getUnion(arr1,arr2){
var obj={};
var union=[];
for(var i=0;i<arr1.length;i++){
if(!obj[arr1[i]]){
obj[arr1[i]]=1;
union[union.length]=arr1[i];
}
}
for(var j=0;j<arr2.length;j++){
if(!obj[arr2[j]]){
obj[arr2[j]]=1;
union[union.length]=arr2[j];
}
}
return union;
}
補(bǔ)充練習(xí)題目
for循環(huán) 打印99乘法表
求整數(shù)1~100的累加值好港,但要求跳過所有個(gè)位為3的數(shù)
打印出第5個(gè)能同時(shí)被3米罚、5、7整除的數(shù)
得到下面數(shù)組 ["blue","cyan","pink","red","black","green","yellow"] 中字符串"red"的索引值