精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

JavaScript30秒, 從入門到放棄

開發 前端
最近很火的github上的庫30-seconds-of-code ,特別有意思,代碼也很優雅。能學es6、自己翻譯,能學英語、代碼很美,很優雅,美即正義、函數式表達,享受等。

有意思

最近很火的 github 上的庫 30-seconds-of-code ,特別有意思,代碼也很優雅。

[[214475]]

  1. 能學es6
  2. 自己翻譯,能學英語
  3. 代碼很美,很優雅,美即正義
  4. 函數式表達,享受

arrayGcd

Calculates the greatest common denominator (gcd) of an array of numbers.

Use Array.reduce() and the gcd formula (uses recursion) to calculate the greatest common denominator of an array of numbers.

 

  1. const arrayGcd = arr =>{ 
  2.   const gcd = (x, y) => !y ? x : gcd(y, x % y); 
  3.   return arr.reduce((a,b) => gcd(a,b)); 
  4. // arrayGcd([1,2,3,4,5]) -> 1 
  5. // arrayGcd([4,8,12]) -> 4 

計算數組的***公約數。

使用 Array.reduce() 和 gcd 公式(使用遞歸)來計算一個數組的***公約數。

 

  1. ➜  code cat arrayGcd.js 
  2. const arrayGcd = arr => { 
  3.     const gcd = (x, y) => !y ? x : gcd(y, x % y); 
  4.     return arr.reduce((a, b) => gcd(a, b)); 
  5.  
  6. console.log(arrayGcd([1, 2, 3, 4, 5])); 
  7. console.log(arrayGcd([4, 8, 12])); 
  8. ➜  code node arrayGcd.js 

gcd 即歐幾里德算法,具體不表,自查。這里用到了數組的reduce方法,相當簡潔,reduce不太了解的話,看下 mdn 就明白。

arrayLcm

Calculates the lowest common multiple (lcm) of an array of numbers.

Use Array.reduce() and the lcm formula (uses recursion) to calculate the lowest common multiple of an array of numbers.

 

  1. const arrayLcm = arr =>{ 
  2.  const gcd = (x, y) => !y ? x : gcd(y, x % y); 
  3.  const lcm = (x, y) => (x*y)/gcd(x, y)  
  4.  return arr.reduce((a,b) => lcm(a,b)); 
  5. // arrayLcm([1,2,3,4,5]) -> 60 
  6. // arrayLcm([4,8,12]) -> 24 

計算一個數組的最小公倍數。

使用 Array.reduce() 和 lcm 公式(使用遞歸)來計算一個數組的***公約數。

 

  1. ➜  code cat arrayLcm.js 
  2. const arrayLcm = arr => { 
  3.   const gcd = (x, y) => (!y ? x : gcd(y, x % y)); 
  4.   const lcm = (x, y) => x * y / gcd(x, y); 
  5.   return arr.reduce((a, b) => lcm(a, b)); 
  6. }; 
  7.  
  8. console.log(arrayLcm([1, 2, 3, 4, 5])); 
  9. console.log(arrayLcm([4, 8, 12])); 
  10. ➜  code node arrayLcm.js 
  11. 60 
  12. 24 

lcm 算法用到了前面的 gcd 算法,關鍵點是兩個數的***公約數和最小公倍數的乘積正好就是這兩個數的乘積。

arrayMax

Returns the maximum value in an array.

Use Math.max() combined with the spread operator ( ... ) to get the maximum value in the array.

 

  1. const arrayMax = arr => Math.max(...arr); 
  2. // arrayMax([10, 1, 5]) -> 10 

返回數組中***的值。

使用 Math.max() 和 ES6 的擴展運算符 … 返回數組中***的值。

 

  1. ➜  code cat arrayMax.js 
  2. const arrayMax = arr => Math.max(...arr); 
  3.  
  4. console.log(arrayMax([10, 1, 5])); 
  5. ➜  code node arrayMax.js 
  6. 10 

實際上就是 Math.max() 干的事,沒啥可說的了。

arrayMin

Returns the minimum value in an array.

Use Math.min() combined with the spread operator ( ... ) to get the minimum value in the array.

 

  1. const arrayMin = arr => Math.min(...arr); 
  2. // arrayMin([10, 1, 5]) -> 1 

返回數組中最小的值。

使用 Math.min() 和 ES6 的擴展運算符 … 返回數組中最小的值。

 

  1. ➜  code cat arrayMin.js 
  2. const arrayMin = arr => Math.min(...arr); 
  3.  
  4. console.log(arrayMin([10, 1, 5])); 
  5. ➜  code node arrayMin.js 

實際上就是 Math.min() 干的事,沒啥可說的了。

chunk

Chunks an array into smaller arrays of a specified size.

Use Array.from() to create a new array, that fits the number of chunks that will be produced. Use Array.slice() to map each element of the new array to a chunk the length of size . If the original array can't be split evenly, the final chunk will contain the remaining elements.

 

  1. const chunk = (arr, size) => 
  2.  Array.from({length: Math.ceil(arr.length / size)}, (v, i) => arr.slice(i * size, i * size + size)); 
  3. // chunk([1,2,3,4,5], 2) -> [[1,2],[3,4],[5]] 

按照給定的 size 將一個數組切分成含有 size 個數的更小數組塊的數組。

使用 Array.from() 生產新的符合定義的數組。使用 Array.slice() 來截取指定 size 個元素組成新的數組塊。如果原數組長度不能被 size 整除,***的剩余的那些元素將歸屬于***一個塊。

 

  1. ➜  code cat chunk.js 
  2. const chunk = (arr, size) => 
  3.   Array.from({ length: Math.ceil(arr.length / size) }, (v, i) => 
  4.     arr.slice(i * size, i * size + size
  5.   ); 
  6.  
  7. console.log(chunk([1, 2, 3, 4, 5], 2)); 
  8. ➜  code node chunk.js 
  9. [ [ 1, 2 ], [ 3, 4 ], [ 5 ] ] 

Array.from(arrayLike, mapFn, thisArg) 這個方法呢,***個參數是一個類數組或者可迭代的對象,第二個參數是一個應用在每一個數組元素上的方法,第三個參數就是改變 this 的指向了。通俗說就是指定誰是你的爸爸。

這里用了一個 { length: Math.ceil(arr.length / size) } 迭代對象, length 指定了迭代次數,即按照 size 分塊后的數組長度,正好就是原數組長度除以 size 向上取整的值。向上取整就是為了滿足不能完全整除的情況。比如5個元素按照2個一組進行分塊,分了兩組兩個元素的,剩***一個元素成了獨立組,總長為3。

(v, i) ,由于迭代的時候數組在每一個位置上都是以 undefined 初始化的,所以 v 一直都是 undefined 。

arr.slice(i * size, i * size + size) 迭代過程中每次截取 size 個數的元素組成新數組。這里的 i 就是隨著迭代變化,比如 length 是3, i 就是0,1,2。

這里的迭代類似 python 里的 range 。

 

  1. ➜  code python 
  2. Python 3.6.4 (defaultDec 23 2017, 10:37:40) 
  3. [GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.39.2)] on darwin 
  4. Type "help""copyright""credits" or "license" for more information. 
  5. >>> import math 
  6. >>> arr = [1,2,3,4,5] 
  7. >>> size = 2 
  8. >>> for i in range(math.ceil(len(arr) / size)): 
  9. ...     print('index: ', i) 
  10. ... 
  11. index:  0 
  12. index:  1 
  13. index:  2 

compact

Removes falsey values from an array.

Use Array.filter() to filter out falsey values ( false , null , 0 , "" , undefined , and NaN ).

 

  1. const compact = arr => arr.filter(Boolean); 
  2. // compact([0, 1, false, 2, '', 3, 'a''e'*23, NaN, 's', 34]) -> [ 1, 2, 3, 

移除掉數組里 falsey 的元素。(這個 falsey 不太好翻譯,不是錯誤的意思,而是該值布爾運算值為 false 的意思,我個人常用 !! 進行判斷)。

使用 Array.filter() 把 false 、 null 、 0 、 "" 、 undefined 和 NaN 這些 falsey 過濾掉。

 

  1. ➜  code cat compact.js 
  2. const compact = arr => arr.filter(Boolean); 
  3.  
  4. console.log(compact([0, 1, false, 2, "", 3, "a""e" * 23, NaN, "s", 34])); 
  5. ➜  code node compact.js 
  6. [ 1, 2, 3, 'a''s', 34 ] 

Array.prototype.filter() 干的,沒啥好說。

countOccurrences

Counts the occurrences of a value in an array.

Use Array.reduce() to increment a counter each time you encounter the specific value inside the array.

 

  1. const countOccurrences = (arr, value) => arr.reduce((a, v) => v === value ? a + 1 : a + 0, 0); 
  2. // countOccurrences([1,1,2,1,2,3], 1) -> 3 

統計一個元素在一個數組中出現的次數。

使用 Array.reduce() 在遍歷過程中如果指定元素在數組中出現,則增加它的次數值,默認次數為0。

 

  1. ➜  code cat countOccurrences.js 
  2. const countOccurrences = (arr, value) => 
  3.   arr.reduce((a, v) => (v === value ? a + 1 : a + 0), 0); 
  4.  
  5. console.log(countOccurrences([1, 1, 2, 1, 2, 3], 1)); 
  6. console.log(countOccurrences([1, 1, 2, 1, 2, 3], 5)); 
  7. ➜  code node countOccurrences.js 

三元運算符 (v === value ? a + 1 : a + 0) 遍歷過程中判斷遍歷數組值 v 是否嚴格等于指定值 value ,是,次數 a+1 ;否, a+0 。

***的一個逗號后面的0,是這個初始值,即 a=0 ,這個懂 reduce 方法都知道,特別指出是,因為這個函數一定會有返回值,如果指定元素沒有在數組中出現一次,返回值是 0 ,所以必須得初始化為 0 。

deepFlatten

Deep flattens an array.

Use recursion. Use Array.concat() with an empty array ( [] ) and the spread operator ( ... ) to flatten an array. Recursively flatten each element that is an array.

 

  1. const deepFlatten = arr => [].concat(...arr.map(v => Array.isArray(v) ? deepFlatten(v) : v)); 
  2. // deepFlatten([1,[2],[[3],4],5]) -> [1,2,3,4,5] 

深度攤平一個數組。

使用遞歸方法。結合 Array.concat() 、空數組 [] 和 ES6 的擴展運算符 … 來攤平一個數組,如果攤平的元素還是一個數組,就再遞歸運用該方法。

 

  1. ➜  code cat deepFlatten.js 
  2. const deepFlatten = arr => 
  3.   [].concat(...arr.map(v => (Array.isArray(v) ? deepFlatten(v) : v))); 
  4.  
  5. console.log(deepFlatten([1, [2], [[3], 4], 5])); 
  6. ➜  code node deepFlatten.js 
  7. [ 1, 2, 3, 4, 5 ] 

三元運算符 (Array.isArray(v) ? deepFlatten(v) : v) 判斷 v 是否是一個數組,是,返回遞歸運用 deepFlatten(v) 后的值;否,直接返回 v 。

[].concat(...arr.map(fn)) 用空數組把 map 運算產生的數組進行 … 擴展運算值拼接成結果數組返回。

該方法是深度攤平方法,在很多時候還有特定的攤平一層的需求, underscore 就有。實現的方法就是再加一個標志參數進行處理即可。具體不講了。

應該會寫一個系列,今天先寫到這,明天繼續。

責任編輯:未麗燕 來源: SegmentFault
相關推薦

2016-08-03 16:01:47

GitLinux開源

2019-07-02 14:17:18

API網關網關流量

2017-03-25 20:30:15

2020-07-07 10:50:19

Python丄則表達文本

2025-04-22 02:00:00

芯片晶圓光刻機

2022-01-17 08:52:32

CPUCPU工具顯卡

2021-11-08 07:11:49

決策樹數據分類器

2022-03-28 11:00:34

JVMJava對象

2019-08-21 14:35:18

壓縮文件優化過程Java

2025-06-27 09:05:47

2022-04-19 11:25:31

JVMZGC垃圾收集器

2020-04-10 15:05:09

深度學習人工智能蒸餾

2019-06-23 15:21:42

Google谷歌平板

2018-01-26 14:35:16

程序員入門經歷

2021-05-11 11:08:37

電腦病毒軟件

2021-08-02 06:49:46

Flutter Router安全

2020-11-12 18:51:43

Java編程語言

2022-09-30 15:46:26

Babel編譯器插件

2025-06-25 09:30:14

2022-04-21 08:20:33

CPU換蓋CPU
點贊
收藏

51CTO技術棧公眾號

蜜桃精品噜噜噜成人av| 国产在线观看a| 99视频一区| 在线观看日韩视频| 手机免费av片| 国产在线xxx| 国产亚洲成年网址在线观看| 成人h视频在线观看播放| 中文字幕第28页| 波多野结衣一区| 日韩欧美一级精品久久| 日韩视频第二页| 成人日韩欧美| 国产亚洲一区字幕| 豆国产97在线| 亚洲一区二区三区网站| 亚洲三级色网| 久久久999精品免费| 亚洲精品视频大全| 日韩欧美高清一区二区三区| 色欧美乱欧美15图片| 日韩在线视频在线| 97在线观看免费观看高清 | 久久久天堂国产精品女人| 一区二区三区四区免费| 亚洲伊人影院| 欧美日韩三级一区二区| 怡红院av亚洲一区二区三区h| 午夜伦全在线观看| 久久影音资源网| 国产 高清 精品 在线 a| 中国精品一区二区| 久久人人精品| 性色av香蕉一区二区| 欧美激情图片小说| 久久国产亚洲精品| 亚洲欧洲在线视频| 国产精品扒开腿做爽爽爽a片唱戏| 香蕉久久一区| 欧美日韩在线综合| 久久久国产欧美| 五月激情久久| 欧美日韩中文字幕日韩欧美| 国产 欧美 日韩 一区| h片在线播放| 国产精品传媒视频| 亚洲黄色成人久久久| 国产区视频在线| 久久久精品天堂| 欧美自拍资源在线| 噜噜噜噜噜在线视频| 99久久99久久精品免费观看| 国产区欧美区日韩区| 丰满人妻一区二区三区四区53| 蜜臀av国产精品久久久久| 国产精品∨欧美精品v日韩精品| 国产女同在线观看| 在线亚洲一区| 57pao成人国产永久免费| 国产精品免费av一区二区| 亚洲人成久久| 2019亚洲日韩新视频| 亚洲精品午夜国产va久久成人| 黄色国产精品| 96精品视频在线| 韩国av中文字幕| 亚洲女优在线| 国产精品久久9| 97超碰人人模人人人爽人人爱| 欧美bbbbb| 亚洲www在线观看| www.四虎在线观看| 99久久综合99久久综合网站| 久久天堂国产精品| 国产人成在线视频| 亚洲欧美区自拍先锋| 17c丨国产丨精品视频| 自拍偷拍亚洲视频| 欧美性生交片4| 亚洲 国产 图片| 99热这里只有精品首页| 亚洲精品国产欧美| 亚洲AV无码成人精品区明星换面| 日韩成人免费| 欧美成aaa人片免费看| 日韩av黄色片| 日本亚洲三级在线| 97操在线视频| 国产中文在线观看| 亚洲欧美激情一区二区| 欧美视频在线播放一区| 九七电影院97理论片久久tvb| 日韩欧美在线网站| 成年人网站免费看| 国产二区精品| 欧美中文字幕在线观看| 一区二区久久精品66国产精品| 丁香婷婷深情五月亚洲| 欧美一区1区三区3区公司 | 久久全球大尺度高清视频| 日本一区二区免费电影| 韩国午夜理伦三级不卡影院| 久久av二区| 蜜桃视频在线观看免费视频网站www| 一区二区成人在线| 九九视频精品在线观看| 国产伦理久久久久久妇女 | 美女网站视频在线| 欧美在线视频你懂得| 欧美成人精品一区二区综合免费| 国产成人精品三级高清久久91| 欧美高跟鞋交xxxxhd| 波多野结衣视频在线看| 成人性视频网站| 中文字幕人成一区| 欧美成人ⅴideosxxxxx| 日韩精品中文字幕一区| 成年人视频软件| 亚洲一区二区伦理| 粉嫩av四季av绯色av第一区| 日本在线播放| 欧美在线观看你懂的| av无码一区二区三区| 亚洲最新av| 国产精品久久久久久久美男| 少妇性bbb搡bbb爽爽爽欧美| 亚洲一区影音先锋| 色哟哟在线观看视频| 欧美xxxx中国| 国产精品美女免费视频| 四虎影视在线播放| 亚洲一区在线免费观看| 特种兵之深入敌后| 91精品电影| 91精品久久久久久久久久| 国产精品二线| 91福利在线观看| 国产aⅴ激情无码久久久无码| 99香蕉国产精品偷在线观看| 国产精品二区在线| 青草av在线| 欧美v国产在线一区二区三区| 三上悠亚作品在线观看| 美美哒免费高清在线观看视频一区二区| 免费久久99精品国产自| 亚洲欧美韩国| 亚洲乱码一区二区| 销魂美女一区二区| 久久精品视频一区| 8x8x最新地址| 97久久视频| 91免费精品国偷自产在线| 激情视频在线观看| 日韩精品一区二区三区中文不卡 | 色婷婷亚洲精品| 一区二区三区四区免费| 日韩av一区二区三区四区| 日韩中文一区| 日韩黄色三级在线观看| 久久精品夜夜夜夜夜久久| 国产情侣av在线| 亚洲综合自拍偷拍| 天堂久久久久久| 久久国产精品久久久久久电车| 欧美不卡三区| 国产经典一区| 不卡中文字幕av| 六月婷婷中文字幕| 一本一本大道香蕉久在线精品 | 性感美女福利视频| 色猫猫国产区一区二在线视频| 日本高清黄色片| 国产专区综合网| 国产 日韩 欧美在线| 你懂的视频欧美| 国产美女91呻吟求| 欧美寡妇性猛交xxx免费| 日韩国产激情在线| 依依成人在线视频| 亚洲一区二区三区四区在线观看| aaaaa一级片| 精品在线观看视频| 欧美精品卡一卡二| 欧美日中文字幕| 51成人做爰www免费看网站| 韩日毛片在线观看| 最近中文字幕日韩精品 | 久久精品99北条麻妃| 亚洲人成亚洲人成在线观看图片| 亚洲色偷偷色噜噜狠狠99网| 日韩电影在线观看一区| 六月婷婷激情网| 美女少妇全过程你懂的久久| 91久久中文字幕| 爱情电影社保片一区| 久热国产精品视频| 久久精品国产亚洲a∨麻豆| 日韩亚洲欧美中文三级| 一级黄色av片| 亚洲国产美女搞黄色| 亚洲国产精品一区二区久久hs| 丁香激情综合国产| jizz大全欧美jizzcom| 亚洲欧洲日本mm| 国产卡一卡二在线| 欧美禁忌电影网| 成人黄色片视频网站| 国产经典一区| 欧美性受xxxx黑人猛交| 在线看福利影| 中文字幕av一区中文字幕天堂| 国精品人妻无码一区二区三区喝尿| 在线视频国产一区| 日韩美女视频网站| 亚洲狠狠丁香婷婷综合久久久| 最近中文字幕免费视频| 成人国产精品视频| 日本中文字幕在线不卡| 免费精品99久久国产综合精品| 国产视频九色蝌蚪| 国产字幕视频一区二区| japanese在线视频| 青青草原综合久久大伊人精品| 精品国产中文字幕| 超碰成人97| 国产成人精品日本亚洲11| 成人日韩视频| 91精品视频免费看| 亚洲ww精品| 国产免费一区视频观看免费| 日本免费久久| 日本免费久久高清视频| 老司机深夜福利在线观看| 久久久久久久久国产精品| 亚洲小说区图片| 欧美精品制服第一页| 很黄的网站在线观看| 日韩视频精品在线| 夜级特黄日本大片_在线| 在线日韩精品视频| 精品999视频| 亚洲欧美一区二区三区久久| 欧美精品久久久久久久久久丰满| 日韩精品中文字| 欧洲伦理片一区 二区 三区| 亚洲美女在线观看| 精品影院一区| 在线观看久久av| 99视频在线观看地址| 久久手机精品视频| 在线不卡日本v二区707| 色综合久综合久久综合久鬼88| 影音先锋中文在线视频| 欧美激情视频在线免费观看 欧美视频免费一 | 亚洲色图13p| 九色在线观看视频| 国产亚洲精品一区二555| 在线日本视频| 久久手机精品视频| 91白丝在线| 欧美最顶级的aⅴ艳星| 成人在线爆射| 成人免费观看a| 网站一区二区| 精品国产乱码久久久久久丨区2区 精品国产乱码久久久久久蜜柚 | 国产精品v欧美精品v日韩精品| 红杏aⅴ成人免费视频| 老牛影视免费一区二区| 精品久久精品| 黄色一级片网址| 亚洲电影av| www.日日操| 国产一区二区电影| www国产视频| 国产精品五月天| 国产一级免费观看| 欧美亚洲禁片免费| 国产高中女学生第一次| 精品亚洲夜色av98在线观看| yw193.com尤物在线| 麻豆国产精品va在线观看不卡| av中文资源在线资源免费观看| 日本精品久久久| 久久av网站| 久久青青草原一区二区| 香蕉av一区二区| 国产精品333| 精品一区二区影视| 国产精品成人99一区无码| 欧美国产一区在线| 亚洲国产精品成人无久久精品| 欧美无人高清视频在线观看| 国内毛片毛片毛片毛片| 国产视频综合在线| 含羞草www国产在线视频| 91国内免费在线视频| 亚洲成人毛片| 欧美国产视频在线观看| 欧美午夜在线| 三上悠亚在线一区| av资源站一区| 国产成人自拍网站| 91久久国产最好的精华液| 亚洲乱码国产乱码精品精软件| 亚洲男子天堂网| 特级毛片在线| 国产精品女主播| 日韩深夜福利| 国产精品视频网站在线观看| 日本va欧美va精品| 亚洲中文字幕无码一区| 中文字幕一区二区三区视频| 亚洲成熟少妇视频在线观看| 欧美成人综合网站| 伊人免费在线| 国产99久久久欧美黑人| 狼人精品一区二区三区在线| 男同互操gay射视频在线看| 石原莉奈在线亚洲二区| 成人免费无码大片a毛片| 一区二区三区精密机械公司| 中文字幕有码视频| 亚洲人成五月天| zzzwww在线看片免费| 91久久精品国产91久久性色tv| 日韩高清欧美| 欧美 日韩 国产 激情| 99久久国产综合色|国产精品| 久久久久久久久久综合| 欧美精品乱码久久久久久按摩| 黄色视屏网站在线免费观看| 91国产美女在线观看| 欧美交a欧美精品喷水| 18禁裸男晨勃露j毛免费观看| 久久99久久久欧美国产| 久久久久久久久福利| 91福利社在线观看| 美国成人毛片| 日韩免费在线看| 久久爱www成人| 免费国产成人av| 国产欧美一区二区精品性| 天堂免费在线视频| 亚洲日韩中文字幕在线播放| 日韩不卡在线| 午夜欧美一区二区三区免费观看| 日韩中文字幕1| 1024手机在线观看你懂的| 欧美综合在线视频| 成人高清在线| 成人欧美一区二区三区黑人孕妇| 久久精品影视| 绯色av蜜臀vs少妇| 亚洲成a人片在线观看中文| 乱色精品无码一区二区国产盗| 亚洲91精品在线| 亚洲精品中文字幕99999| 粉嫩虎白女毛片人体| 国产日韩精品一区二区三区| 中文字幕永久在线观看| 久久国产精品亚洲| 哺乳挤奶一区二区三区免费看| 欧美 日韩 国产在线观看| 久久这里只有精品首页| 国产情侣免费视频| 久久成人av网站| 粉嫩一区二区三区四区公司1| 黄色片网址在线观看| 国产色综合久久| 国产有码在线观看| 国产69精品99久久久久久宅男| 亚洲人成网www| 亚洲色图偷拍视频| 亚洲午夜在线观看视频在线| 亚洲三区在线播放| 国产精品羞羞答答| 亚洲国产第一| 极品人妻videosss人妻| 欧美一区国产二区| 黄视频网站在线观看| 亚洲精品一区二区三区蜜桃久| 国产一区免费电影| 日韩久久久久久久久| 一区二区三欧美| 成人av地址| 国产又大又黄又粗的视频| 一区二区三区精品视频| 激情小说 在线视频| 91观看网站| 日韩激情在线观看| 免费麻豆国产一区二区三区四区| 亚洲精品久久久久久久久久久久久| 丰满少妇一区| 日本丰满少妇xxxx| 中文字幕一区二区三区乱码在线 | 欧美黑人在线观看| 国产午夜精品在线观看| 丰满人妻熟女aⅴ一区| 国产精品综合网站| 国产精品三上|