1. 历史搜索
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<input type="text" id="input">
<h2>历史搜索</h2>
<div id="app"></div>
<script>
var input = document.getElementById("input");
var app = document.getElementById("app");
var historys = []
// 1.获得输入框的值
input .onkeydown=function(event){
if(event.keyCode ==13){
// 2.只要数组中没有的值同时字符不能为空,才向数组添加
if(this.value !="" && historys.indexOf(this.value)== -1){
var p= document.createElement("p");
p.innerHTML = this.value;
app.prepend(p);
historys.unshift(this.value);
this.value=""
console.log(historys)
}else{
alert("输入的字段不能为空或相同字段")
}
}
}
</script>
</body>
</html>
搜索历史
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script>
</head>
<body>
<h2>历史搜索</h2>
<input type="text" id="app">
<div id="container">
</div>
<script>
// 1.获取输入框的值
var historys =[];
$("#app").keyup(function(){
if(event.keyCode==13){
// 2. 将值添加到一个数组中
var value = $(this).val();
var template =`
<button>${value}</button>
`
// 只要数组中不包含输入的关键字才向数组添加
if(value && !historys.includes(value)){
historys.unshift(value);
// 3.渲染数据到页面
$("#container").prepend(template)
$(this).val("")
}
else{
// 4.当输入的值在数组中存在时,让其置于数组首位
console.log(value)
var index =historys.indexOf(value);
var res = historys.splice(index,1);
historys.unshift(value);
console.log(historys)
// ui联动
$("container button").eq(index).remove();
$("#container").prepend(template)
}
}
})
</script>
</body>
</html>
2. 求最小值
<script>
/* 求最小值 */
var arr = [4,6,18,1];
/*
var min = arr[0]
*/
var min = arr[0];
for(var i=1;i<arr.length;i++){
if(min>arr[i]){
min = arr[i];
}
}
/*
min =4 arr[3]=1
*/
console.log(min);
</script>
3. 增加内容
<script>
var arr = [
{name:"lisi",age:"12px"},
{name:"wangwu",age:"13px"},
{name:"zhangsan",age:"14px"}
]
/*
age>24 like true
[
{name:"lisi",age:24,like:false},
{name:"wangwu",age:26,like:true},
{name:"zhangsan",age:28,like:true}
]
*/
for(var i=0;i<arr.length;i++){
var age = parseFloat(arr[i].age)*2
console.log(age)
arr[i].age = age;
if(age>24){
arr[i].like = true;
}else{
arr[i].like = false;
}
}
console.log(arr)
</script>
4.搜索
<script>
/* trim去除字符串前后尾的空格 */
var str = " fdsf ";
console.log(str.trim())
</script>
<input type="text" id="input">
<script>
var searchs = [{
spell: "A",
citys: [{
name: "阿里",
id: 1001
},
{
name: "阿拉",
id: 1001
},
{
name: "阿克",
id: 1001
}
]
}, {
spell: "T",
citys: [{
name: "天下",
id: 2001
},
{
name: "天天",
id: 2002
},
{
name: "天里",
id: 2003
}
]
}]
/*
input输入 里
*/
// var arr = [
// { name:"天里",id:2003},{name:"阿里",id:1001}
// ]
var keyword = "里";
var arr = [];
var input = document.getElementById("input");
input.onkeydown = function (event) {
if (event.keyCode == 13) {
if (this.value != "") {
console.log(this.value)
var kw = this.value;
addCity(kw);
console.log(arr);
}
}
}
function addCity(keyword) {
for (var i = 0; i < searchs.length; i++) {
var citys = searchs[i].citys;
for (j = 0; j < citys.length; j++) {
// console.log(citys[j])
if (citys[j].name.includes(keyword)) {
arr.push(citys[j]);
}
}
}
}
</script>
5. 让数组中被搜索的值,至于顶部
<input type="text" id="app">
<script>
// 让数组中被搜索的值,至于顶部
var arr = ["html","css","js","vue","react"]
var historys =[];
$("#app").keyup(function(event){
if(event.keyCode==13){
var value = $(this).val();
if(arr.indexOf(value)!= -1){
console.log(value)
var index = arr.indexOf(value);
arr.splice(index,1);
arr.unshift(value);
console.log(arr)
}
}
})
</script
6. 升序与降序
<script>
var arr =[12,3,5,11,1];
console.log(arr.sort())
// arr.sort(function(a,b){
// return a-b;
// })
var newArr =arr.sort(function(a,b){
return a-b;
})
var c =[12,14,45,2];
var test =c.sort(function(a,b){
return b-a;
})
console.log(newArr)
console.log(test)
</script>
<select id="mySelect">
<option value="price">低价优先</option>
<option value="distance">距离优先</option>
</select>
<script>
var arr = [{
name:"肯德基",price:100,distance:100
},
{
name:"必胜客",price:200,distance:500
},
{
name:"华莱士",price:50,distance:1000
}
]
/* 根据价格进行升序 --从小到大 */
arr.sort(function(a,b){
return a.price-b.price;
})
console.log(arr);
/* 根据距离进行降序 --从大到小 */
arr.sort(function(a,b){
return b.distance-a.distance;
})
console.log(arr);
</script>
II.注意
<script>
/* 对象的某个属性是变量,不能使用.。只能使用[] */
var obj = {
name:"lisi",
age:18
}
var value = "name";
console.log(obj.value);
console.log(obj[value]);
</script>
7. 输入谁的id删除谁
<body>
<!-- /*
input输入框,输入谁的id删除谁
*/
/*
1、要获取输入框的值
2、根据id的值,获取数组中对应项的下标
3、删除
*/ -->
<input type="text" id="app">
<script>
var arr =[
{name:"amy",id:"1001"},
{name:"tom",id:"1002"},
{name:"jack",id:"1003"},
{name:"lisa",id:"1004"},
]
var app=document.getElementById("app");
app.onkeydown = function(event){
if(event.keyCode ==13){
var id =Number(this.value);
var index = arr.findIndex(item=>{
return item.id ==id;
})
if(index!=-1){
arr.splice(index,1);
}
console.log(arr);
}
}
</script>
</body>
8. 过滤数组并整合
(1)
<script>
var obj ={
top250:["你好154","他的152"],
comingSoon:["防抖456","节流121"],
theaters:["放大镜222","防静电666"]
}
var arr =[];
// 1.获取对象中属性的值
for(var k in obj){
// console.log(obj[k]);
// 2.需要将属性的值整合到一个数组
arr.push(obj[k][0])
}
// console.log(arr)
var reg =/\d/g;
var res =[];
// 3.对数组中每一项值,过滤
arr.forEach(name=>{
var name = name.replace(reg,"");
console.log(name)
res.push({
name
})
})
console.log(res)
</script>
(2)
<script>
var str =
`<span>9.7</span><span >-248人评价</span>
<br><span>9.5</span><span>-48人评价</span>
<br><span>9.6</span><span>-508人评价</span>`
var arr =str.split("<br>");
var reg =/<[^<>]+>/g;
var res = arr.map(item=>{
return item.trim().replace(reg,"")
})
// console.log(res)
var list=[];
res.forEach(item=>{
// console.log(item.split("-"))
list.push(item.split("-"))
})
// console.log(list)
var sum =[];
var rSum =/[^\d]/g;
list.forEach(item=>{
// console.log(item)
sum.push({
star:item[0],
rating:item[1].replace(rSum,"")
})
})
console.log(sum)
</script>
9. 过滤相同值并整合
(1)
<script>
var arr = [
{name:"lisi"},
{name:"html"},
{name:"css"},
{name:"vue"},
{name:"vue"},
{name:"html"}
]
/*var list = ["lisi","html","css","vue"] */
/* 1、 list [ ]; */
var list = [];
arr.forEach(item=>{
var {name} = item;
if(!list.includes(name)){
list.push(name);
}
})
console.log(list)
</script>
(2)
<script>
var arr ={
A:[{city:"武汉"},{city:"广州"}],
B:[{city:"深圳"},{city:"广州"}],
C:[{city:"上海"},{city:"武汉"}]
}
/*
var citys = ["武汉","广州","深圳","上海"]
*/
var list = [];
for(var key in arr){
// console.log(arr[key])
list.push(...arr[key]);
}
var res = [];
list.forEach(item=>{
var {city}= item;
console.log(item)
if(!res.includes(city)){
res.push(city);
}
})
console.log(res)
</script>