UNPKG

kits-core

Version:
167 lines (150 loc) 4.58 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.getValNearest = exports.insertArrayToArray = exports.remove_object_element = exports.array_move_item_by_value = exports.swap_element_by_value = exports.swap_element_by_index = exports.array_move_item = undefined; var _lodash = require('lodash'); function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } /** * * @param arr * @param old_index * @param new_index * Input: [1,2,3,5,12,6] * Move item from index 3 to index 5 (move 5 to end array) * Output: [1,2,3,12,6,5] * Console.log(array_move([1, 2, 3 , 5, 12 , 6], 3, 5)); * */ var array_move_item = exports.array_move_item = function array_move_item(arr, old_index, new_index) { if (new_index >= arr.length) { var k = new_index - arr.length + 1; while (k--) { arr.push(undefined); } } arr.splice(new_index, 0, arr.splice(old_index, 1)[0]); return arr; }; /** * * @param arr * @param fromKeyElement * @param toKeyElement * Input: Map or Array * Example for Map: 1: {a}, 2: {b}, 3: {c} * swap item from position 1 to position 3 (move 3 to 1) * Output: 3:{c}, 2:{b}, 1: {a} * */ var swap_element_by_index = exports.swap_element_by_index = function swap_element_by_index(arr, fromKeyElement, toKeyElement) { var cloneArr = arr; var tmp = cloneArr[fromKeyElement]; cloneArr[fromKeyElement] = cloneArr[toKeyElement]; cloneArr[toKeyElement] = tmp; return cloneArr; }; /** * * @param arr * @param fromValue * @param toValue * similar swap_element_by_index * */ var swap_element_by_value = exports.swap_element_by_value = function swap_element_by_value(arr, fromValue, toValue) { var fromKeyElement = 0; var toKeyElement = 0; for (var i = 0; i < arr.length; i++) { if (arr[i] === fromValue) { fromKeyElement = i; } else if (arr[i] === toValue) { toKeyElement = i; } } return swap_element_by_index(arr, fromKeyElement, toKeyElement); }; var array_move_item_by_value = exports.array_move_item_by_value = function array_move_item_by_value(arr, fromValue, toValue) { var fromKeyElement = 0; var toKeyElement = 0; for (var i = 0; i < arr.length; i++) { if (arr[i] === fromValue) { fromKeyElement = i; } else if (arr[i] === toValue) { toKeyElement = i; } } return array_move_item(arr, fromKeyElement, toKeyElement); }; /** * * @param arr * @param objectRemove * Input: Array * Đố bạn biết mình sắp ghi gì? * */ var remove_object_element = exports.remove_object_element = function remove_object_element(arr, objectRemove) { var cloneArr = [].concat(_toConsumableArray(arr)); cloneArr.forEach(function (val, ind) { if ((0, _lodash.isEqual)(val, objectRemove) || val === objectRemove) { cloneArr.splice(ind, 1); } }); return cloneArr; }; var insertArrayToArray = exports.insertArrayToArray = function insertArrayToArray(arrSource, arrInsert, indexInsert) { var arrayDest = []; for (var i = 0; i < arrSource.length; i++) { if (i === indexInsert) { var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = arrInsert[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var item = _step.value; arrayDest.push(item); } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } arrayDest.push(arrSource[i]); } else { arrayDest.push(arrSource[i]); } } return arrayDest; }; /** * Get value nearest with goalValue * @param array * @param goalValue * @param target * Input: [1,2,3,5,12,6] goal = 11, target = true * Output: 12 * Input: [1,2,3,5,12,6] goal = 11, target = false * Output: 5 * */ var getValNearest = exports.getValNearest = function getValNearest(array, goalValue, target) { for (var i = 0; i < array.length; i++) { if (target === true) { if (array[i] > goalValue) { return array[i - 1] || 0; } } else if (array[i] >= goalValue) { return array[i]; } } };