当前位置: 首页 > news >正文

上海宝山网站建设培训seo技巧是什么意思

上海宝山网站建设培训,seo技巧是什么意思,网站建设建站知识,自己做网站要会什么软件下载1 Set对象 介绍: Set数据结构类似数组,但所有成员的值唯一。 Set本身为一个构造函数,用来生成 Set数据结构,使用 add方法来添加新成员。 let a new Set(); [1,2,2,1,3,4,5,4,5].forEach(x>a.add(x)); for(let k of a){ console.log(k…

1 Set对象
介绍: Set数据结构类似数组,但所有成员的值唯一。 Set本身为一个构造函数,用来生成 Set数据结构,使用 add方法来添加新成员。

let a = new Set();
[1,2,2,1,3,4,5,4,5].forEach(x=>a.add(x));
for(let k of a){
    console.log(k)
};
// 1 2 3 4 5
基础使用:

let a = new Set([1,2,3,3,4]);
[...a]; // [1,2,3,4]
a.size; // 4

// 数组去重

[...new Set([1,2,3,4,4,4])];// [1,2,3,4]
注意:向 Set中添加值的时候,不会类型转换,即 5和 '5'是不同的。
[...new Set([5,'5'])]; // [5, "5"]


属性和方法:

属性:
Set.prototype.constructor:构造函数,默认就是 Set函数。
Set.prototype.size:返回 Set实例的成员总数。
操作方法:
add(value):添加某个值,返回 Set 结构本身。
delete(value):删除某个值,返回一个布尔值,表示删除是否成功。
has(value):返回一个布尔值,表示该值是否为Set的成员。
clear():清除所有成员,没有返回值。
let a = new Set();
a.add(1).add(2); // a => Set(2) {1, 2}
a.has(2);        // true
a.has(3);        // false
a.delete(2);     // true  a => Set(1) {1}
a.clear();       // a => Set(0) {}
数组去重:

let a = new Set([1,2,3,3,3,3]);


2 Set的应用
数组去重:

/ 方法1
[...new Set([1,2,3,4,4,4])]; // [1,2,3,4]
// 方法2
Array.from(new Set([1,2,3,4,4,4]));    // [1,2,3,4]
遍历和过滤:

let a = new Set([1,2,3,4]);

// map 遍历操作
let b = new Set([...a].map(x =>x*2));// b => Set(4) {2,4,6,8}

// filter 过滤操作
let c = new Set([...a].filter(x =>(x%2) == 0)); // b => Set(2) {2,4}
获取并集、交集和差集:

let a = new Set([1,2,3]);
let b = new Set([4,3,2]);

// 并集
let c1 = new Set([...a, ...b]);  // Set {1,2,3,4}

// 交集
let c2 = new Set([...a].filter(x => b.has(x))); // set {2,3}// 差集
let c3 = new Set([...a].filter(x => !b.has(x))); // set {1}

 遍历方法:


keys():返回键名的遍历器。
values():返回键值的遍历器。
entries():返回键值对的遍历器。
forEach():使用回调函数遍历每个成员。
Set遍历顺序是插入顺序,当保存多个回调函数,只需按照顺序调用。但由于 Set结构没有键名只有键值,所以 keys()和 values()是返回结果相同。

let a = new Set(['a','b','c']);
for(let i of a.keys()){console.log(i)};   // 'a' 'b' 'c'
for(let i of a.values()){console.log(i)}; // 'a' 'b' 'c'
for(let i of a.entries()){console.log(i)}; 
// ['a','a'] ['b','b'] ['c','c']
并且 还可以使用 for...of直接遍历 Set。

let a = new Set(['a','b','c']);
for(let k of a){console.log(k)};   // 'a' 'b' 'c'
forEach与数组相同,对每个成员执行操作,且无返回值。

let a = new Set(['a','b','c']);
a.forEach((v,k) => console.log(k + ' : ' + v));


3 Map对象
由于传统的 JavaScript对象只能用字符串当做键,给开发带来很大限制,ES6增加 Map数据结构,使得各种类型的值(包括对象)都可以作为键。 Map结构提供了“值=>值”的对应,是一种更完善的 Hash 结构实现。

基础使用:

let a = new Map();
let b = {name: 'leo' };
a.set(b,'my name'); // 添加值
a.get(b);           // 获取值
a.size;      // 获取总数
a.has(b);    // 查询是否存在
a.delete(b); // 删除一个值
a.clear();   // 清空所有成员 无返

注意:

传入数组作为参数,指定键值对的数组。
let a = new Map([
    ['name','leo'],
    ['age',18]
])
如果对同一个键多次赋值,后面的值将覆盖前面的值。
let a = new Map();
a.set(1,'aaa').set(1,'bbb');
a.get(1); // 'bbb'
如果读取一个未知的键,则返回 undefined。
new Map().get('abcdef'); // undefined
同样的值的两个实例,在 Map 结构中被视为两个键。
let a = new Map();
let a1 = ['aaa'];
let a2 = ['aaa'];
a.set(a1,111).set(a2,222);
a.get(a1); // 111
a.get(a2); // 222


遍历方法: Map 的遍历顺序就是插入顺序。

keys():返回键名的遍历器。
values():返回键值的遍历器。
entries():返回所有成员的遍历器。
forEach():遍历 Map 的所有成员。
let a = new Map([
    ['name','leo'],
    ['age',18]
])

for (let i of a.keys()){...};
for (let i of a.values()){...};
for (let i of a.entries()){...};
a.forEach((v,k,m)=>{
    console.log(`key:${k},value:${v},map:${m}`)
})


将Map结构转成数组结构:

let a = new Map([
    ['name','leo'],
    ['age',18]
])

let a1 = [...a.keys()];   // a1 => ["name", "age"]
let a2 = [...a.values()]; // a2 =>  ["leo", 18]
let a3 = [...a.entries()];// a3 => [['name','leo'], ['age',18]]


4 Map与其他数据结构互相转换

Map 转 数组

Map 转 数组
let a = new Map().set(true,1).set({f:2},['abc']);
[...a]; // [[true:1], [ {f:2},['abc'] ]]
数组 转 Map
let a = [ ['name','leo'], [1, 'hi' ]]
let b = new Map(a);
Map 转 对象 如果所有 Map 的键都是字符串,它可以无损地转为对象。 如果有非字符串的键名,那么这个键名会被转成字符串,再作为对象的键名。

function fun(s) {
  let obj = Object.create(null);
  for (let [k,v] of s) {
    obj[k] = v;
  }
  return obj;
}const a = new Map().set('yes', true).set('no', false);
fun(a)
// { yes: true, no: false } 

 对象 转 Map

对象 转 Map

function fun(obj) {
  let a = new Map();
  for (let k of Object.keys(obj)) {
    a.set(k, obj[k]);
  }
  return a;
}

fun({yes: true, no: false})
// Map {"yes" => true, "no" => false}

Map 转 JSON

(1)Map键名都是字符串,转为对象JSON:

function fun (s) {
    let obj = Object.create(null);
    for (let [k,v] of s) {
        obj[k] = v;
    }
    return JSON.stringify(obj)
}
let a = new Map().set('yes', true).set('no', false);
fun(a);
// '{"yes":true,"no":false}'


(2)Map键名有非字符串,转为数组JSON:

function fun (map) {
  return JSON.stringify([...map]);
}

let a = new Map().set(true, 7).set({foo: 3}, ['abc']);
fun(a)
// '[[true,7],[{"foo":3},["abc"]]]'


JSON 转 Map (1)所有键名都是字符串:

function fun (s) {
  let strMap = new Map();
  for (let k of Object.keys(s)) {
    strMap.set(k, s[k]);
  }
  return strMap;
  return JSON.parse(strMap);
}
fun('{"yes": true, "no": false}')
// Map {'yes' => true, 'no' => false}


(2)整个 JSON 就是一个数组,且每个数组成员本身,又是一个有两个成员的数组:

function fun2(s) {
  return new Map(JSON.parse(s));
}
fun2('[[true,7],[{"foo":3},["abc"]]]')
// Map {true => 7, Object {foo: 3} => ['abc']}

http://www.wangmingla.cn/news/109887.html

相关文章:

  • 青海省城乡建设厅网站seo搜索引擎优化总结报告
  • 网站建设与管理好找工作吗如何制作网站最简单的方法
  • 上海市住房与城乡建设委员会网站深圳百度推广联系方式
  • 织梦网站地图怎么做xml搜索引擎收录查询工具
  • 网站怎么做统计关键词竞价排名名词解释
  • 实惠的网站建设电商网站开发平台
  • 云服务器可以做网站陕西整站关键词自然排名优化
  • 包头网站开发公司网店推广实训系统
  • 辽宁省建设工程龙岗seo网络推广
  • 巢湖网站开发济南优化网站关键词
  • 健康网站可以做推广吗百度站长联盟
  • 吴忠住房和城乡建设网站新闻热点最新事件
  • node怎么做网站石家庄邮电职业技术学院
  • 内网网站如何建设方案win7优化极致性能
  • 怎么做百度搜索排名企业网站搜索优化网络推广
  • 网站做线免费个人网站源码
  • 路由器做php网站网站推广的基本方法有哪些
  • 网站收录 作用考研最靠谱的培训机构
  • 做网站的感想郑州seo技术服务
  • 邯郸做企业网站改版全球搜索引擎大全
  • 不得建设基层政府网站除了91还有什么关键词
  • 重庆网站推广专家天津百度分公司
  • 石河子网站制作西安今天出大事
  • 宣城网站优化搜狐新闻手机网
  • 阿里巴巴网站详情页怎么做长春关键词优化公司
  • 电子商务网站建设实践灰色行业seo
  • 东莞企业网站推广公司网络营销的优势有哪些
  • 南宁网站seo公司哪家好查域名ip地址查询
  • 广州力yang网站建设老王搜索引擎入口
  • 网站建设栏目提纲青岛seo用户体验