我如何做网络推广网站如何做推广有源码后怎么做网站
**
/* for of 是用来循环可迭代属性的,如何判断是否是可迭代属性,数据原型链上有个Symbol.iterator说明这个数据是可迭代数据 Symbol.iterator是一个函数,调用此函数,会返回一个对象,对象的内部有一个next函数,调用next函数会返回一个对象这个对象内部有value和done值,value表示你正在迭代的属性的内容,done来标识是否迭代完成,迭代完成done为true,否则done为false */
**
let arr = [10, 20]
 console.log(‘arr’, arr);
 let set = new Set([123, 2]);
 console.log(‘set’, set);
 console.log(‘arr[Symbol.iterator]’, arr[Symbol.iterator]);
 // arr[Symbol.iterator]是一个函数,函数return一个对象,内部有一个next方法
 console.log(‘arrSymbol.iterator’, arrSymbol.iterator);//这个对象内部有个next方法
 let iter = arrSymbol.iterator;
 console.log(‘iter.next()’, iter.next());
 console.log(‘iter.next()’, iter.next());
 console.log(‘iter.next()’, iter.next());
 /*
 arr[Symbol.iterator]下的函数是需要返回一个对象,这个return对象上面返回一个next方法,调用这个next方法会return 一个迭代对象,{value:1,done},value表示迭代的真实value值,比如数组那就是数组的真实值,done表示是否迭代完真个数据,为false表示没有迭代完,如果迭代完了done为true;
 */
 const replacer = function (key, value) {//配合JSON.stringify把不需要的属性过滤出来
 console.log(‘key’, key);
 console.log(‘value’, value);
 if (isNaN(+key)) {//如果key不是数字就忽略该项,return undefined就表示忽略该项
 return undefined
 } else {
 return value
 }
 }
let iteratorObj = {
 1: 1,
 2: 2,
 Symbol.iterator {
 let arr = Object.values(JSON.parse(JSON.stringify(iteratorObj, replacer))),
 index = 0,
 len = arr.length
 console.log(arr, 1);
 return {
 next() {
 if (index < len) {
 return {
 value: arr[index++],
 done: false
 }
 } else {
 return {
 value: undefined,
 done: true
 }
 }
 }
 }
 }
 }
//让对象变成可迭代的数,可以被for of循环
 for (const item of iteratorObj) {
 console.log(‘iteratorObj_item’, item);
 }
const JSONObj = {
 1: 1,
 2: 2,
 test: ‘123’,
 key: undefined,
 fun: function () {
}
 
}
/*
 JSON.stringify(),
 使用在转化对象的时候,可以传递两个参数第一个是你要转的数据,第二个是一个函数,函数内部有key,value你可以根据key,value去过滤数据
 return undefined就表示忽略该项
 ,第二个参数除了可以传递函数还可以传递数组,数组内部是你要保留的key的属性;
 如上JSON.stringify(JSONObj, [‘test’])→这样就只转了test
 const fi = (key, value) => {
 if (key == ‘test’ || key == ‘fun’) {
 return undefined
 }
 return value
 }
 const res = JSON.stringify(JSONObj, fi);
 console.log(JSON.stringify(JSONObj, [‘test’], ‘zhang_’));//第三个参数是给key家前缀
 */
 const fi = (key, value) => {
 if (key == ‘test’ || key == ‘fun’) {
 return undefined
 }
 return value
 }
 const res = JSON.stringify(JSONObj, fi);
 console.log(‘res’, res);//
 const JSONArr = [124, 5235, 235]
 console.log(JSON.stringify(JSONObj, [‘test’], ‘zhang_’));//第三个参数是给key家前缀
