工具類,處理數(shù)組的一些方法。
ko.utils.arrayForEach(array, callback)
與Array.prototype.forEach作用一致。提供函數(shù)(回調(diào)函數(shù))對數(shù)組的每個元素執(zhí)行一次。使用方法:
var arr = [1, 2, 3, 4];
ko.utils.arrayForEach(arr, function(el, index) {
console.log(el)
});
// 分別輸出:1、2、3、4
ko.utils.arrayForEach源碼:
ko.utils.arrayForEach = function (array, action) {
for (var i = 0, j = array.length; i < j; i++)
action(array[i], i);
}
ko.utils.arrayMap(array, callback)
與Array.prototype.map作用一致。返回一個由原數(shù)組中的每個元素調(diào)用一個指定方法后的返回值組成的新數(shù)組。使用方法:
var arr = [1, 2, 3, 4];
var newArr = ko.utils.arrayMap(arr, function(el, index) {
return el + 1;
});
// 得到的newArr為:[2, 3, 4, 5]
ko.utils.arrayMap源碼:
ko.utils.arrayMap = function (array, mapping) {
array = array || [];
var result = [];
for (var i = 0, j = array.length; i < j; i++)
result.push(mapping(array[i], i));
return result;
}