1.数组去重
删除数组中重复的数字
var arr=[1,4,2,6,6,9,0,1];
function deleteDate(arr) {
for(var i=0;i<arr.length;i++){
if(arr.indexOf(arr[i])!=i){
arr.splice(i,1);
i--;
}
}
return arr;
}
console.log(deleteDate(arr));//[1,4,2,6,9,0]
显示数组中重复的数字
var arr=[1,3,2,4,1,5,2,1,0,5,2];
function deleteData(arr) {
for (var i=0;i<arr.length;i++){
if (arr.indexOf(arr[i])!=i){
arr.splice(i,1);
i--;
}
}
return arr;
}
function showData(arr){
var result=[];
for (var i=0;i<arr.length;i++){
if (arr.indexOf(arr[i])!=i){
result.push(arr[i]);
}
}
return result;
}
var result=showData(arr);
console.log(deleteData(result));
console.log(deleteData(arr));
显示数组中数据重复的次数{apple: 2, orange: 3, pear: 1}
var arr = ["apple","orange","apple","orange","pear","orange"];
function getWordCnt(arr){
var result={};
for(var i=0;i<arr.length;i++){
var item=arr[i];
result[item]=(result[item]+1)||1;
}
return result;
}
console.log(getWordCnt(arr));//{apple: 2, orange: 3, pear: 1}
2.flex三栏布局(css)
两侧宽度固定,中间自适应宽度
<style type="text/css">
.box{
width: 600px;
height: 400px;
display: flex;
}
.left{
width: 200px;
background-color:red;
}
.right{
width: 100px;
background-color: black;
}
.middle{
flex-grow: 1;
background-color: blue;
}
</style>
</head>
<body>
<div class="box">
<div class="left"></div>
<div class="middle"></div>
<div class="right"></div>
</div>
效果:
3.股票最大利润
假设有一个数组,他的第i个元素对应第i天的价格,如果最多只允许完成一次交易,设计一个算法找出最大利润
例:[7,1,5,3,6,4] 最大利润:5
function maxpProfit(arr){
if(arr.length<=1)
return 0;
var max=0;
for(var i=0;i<arr.length;i++){
for(var j=i;j<arr.length;j++){
var price=arr[j]-arr[i];
if(price>max)
max=price;
}
}
return max;
}
var arr=[7,1,5,3,6,4] ;
console.log(maxProfit(arr));//5
多次交易:
function maxProfit(arr){
if(arr.length<=1)
return 0;
var max=0;
for(var i=1;i<arr.length;i++){
var sum=arr[i]-arr[i-1];
if(sum>0)
max+=sum;
}
return max;
}
var arr=[7,1,5,3,6,4] ;
console.log(maxProfit(arr));//7
后续更新…