Demo - 數組拓展:http://a-1.vip/demo/ele
```
var arr = [{
nome: 'abc',
a: '1',
b: '2',
c: '1',
'年齡': 22
}, {
nome: 'def',
a: '1',
b: '1',
c: '3',
'年齡': 25
}, {
nome: 'gh',
a: '2',
b: '1',
c: '3',
'年齡': 18
}];
// ······································································
// 遍歷數組:(成員,索引值,數組自身)
arr.forEach(function(ele, index, self) {
console.log(this); // 打印為 []
console.log(ele, index, self);
}, []);
// ·······················
// 遍歷數組·原型、
Array.prototype.myFor = function(fun) {
var _this = arguments[1] || window; // 如果傳入第二的參數就改變為作用域、
for (var i = 0; i < this.length; i++) {
fun.apply(_this, [this[i], i, this]);
}
};
// ······································································
// 數組過濾:(成員,索引值,數組自身)
// 根據返回值:true、false 決定去、留;
var newArr = arr.filter(function(ele, index, self) {
return ele.a == 1;
});
console.log(newArr);
// ·······················
// 數組過濾·原型、
Array.prototype.myFilter = function(fun) {
var arr = [];
var _this = arguments[1] || window; // 如果傳入第二的參數就改變為作用域、
for (var i = 0; i < this.length; i++) {
fun.apply(_this, [this[i], i, this]) && arr.push(this[i]);
}
return arr;
};
// ······································································
// 映射數組:(成員,索引值,數組自身) 根據返回值:改變數組成員的數據、
var newArr = arr.map(function(ele, index, self) {
ele.a += ' new'; // 這樣會改變原數組、
return ele.a;
});
// 注意:arr != newArr
console.log(newArr); // ["1 new", "1 new", "2 new"]
console.log(arr[0]); // Object {nome: "abc", a: "1 new", b: "2", c: "1"}
// ·······················
// 映射數組·原型
Array.prototype.myMap = function(fun) {
var arr = [],
_this = arguments[1] || window;
for (var i = 0; i < this.length; i++) {
arr.push(fun.apply(_this, [this[i], i, this]));
}
return arr;
};
// ······································································
// 對一組數據(數組)進行判斷,返回true/false
// 所有成員都滿足條件才會返回true,只要有一個成員不滿足指定的條件就返回false 并終止數組的遍歷。
var flag = arr.every(function(ele, index, self) {
return ele['年齡'] >= 20;
});
console.log(flag); //false
// ·······················
// 判斷(篩選)數組·原型
Array.prototype.myEvery = function(fun) {
var flag = true,
_this = arguments[1] || window;
for (var i = 0; i < this.length; i++) {
if (!fun.apply(this, [this[i], i, this])) {
return false;
}
}
return flag;
};
// ······································································
Array.prototype.some() -- 與Array.prototype.every()相反
// 對一組數據(數組)進行判斷,返回true/false
// 所有成員都滿足條件才會返回false,只要有一個成員返回true,就返回true 并終止數組的遍歷。
```
- 前端工具庫
- HTML
- CSS
- 實用樣式
- JavaScript
- 模擬運動
- 深入數組擴展
- JavaScript_補充
- jQuery
- 自定義插件
- 網絡 · 后端請求
- css3.0 - 2019-2-28
- 選擇器
- 邊界樣式
- text 字體系列
- 盒子模型
- 動圖效果
- 其他
- less - 用法
- scss - 用法 2019-9-26
- HTML5 - 2019-3-21
- canvas - 畫布
- SVG - 矢量圖
- 多媒體類
- H5 - 其他
- webpack - 自動化構建
- webpack - 起步
- webpack -- 環境配置
- gulp
- ES6 - 2019-4-21
- HTML5補充 - 2019-6-30
- 微信小程序 2019-7-8
- 全局配置
- 頁面配置
- 組件生命周期
- 自定義組件 - 2019-7-14
- Git 基本操作 - 2019-7-16
- vue框架 - 2019-7-17
- 基本使用 - 2019-7-18
- 自定義功能 - 2019-7-20
- 自定義組件 - 2019-7-22
- 腳手架的使用 - 2019-7-25
- vue - 終端常用命令
- Vue Router - 路由 (基礎)
- Vue Router - 路由 (高級)
- 路由插件配置 - 2019-7-29
- 路由 - 一個實例
- VUEX_數據倉庫 - 2019-8-2
- Vue CLI 項目配置 - 2019-8-5
- 單元測試 - 2019-8-6
- 掛載全局組件 - 2019-11-14
- React框架
- React基本使用
- React - 組件化 2019-8-25
- React - 組件間交互 2019-8-26
- React - setState 2019-11-19
- React - slot 2019-11-19
- React - 生命周期 2019-8-26
- props屬性校驗 2019-11-26
- React - 路由 2019-8-28
- React - ref 2019-11-26
- React - Context 2019-11-27
- PureComponent - 性能優化 2019-11-27
- Render Props VS HOC 2019-11-27
- Portals - 插槽 2019-11-28
- React - Event 2019-11-29
- React - 渲染原理 2019-11-29
- Node.js
- 模塊收納
- dome
- nodejs - tsconfig.json
- TypeScript - 2020-3-5
- TypeScript - 基礎 2020-3-6
- TypeScript - 進階 2020-3-9
- Ordinary小助手
- uni-app
- 高德地圖api
- mysql
- EVENTS
- 筆記
- 關于小程序工具方法封裝
- Tool/basics
- Tool/web
- parsedUrl
- request