@sula/ruler
Version:
83 lines (64 loc) • 1.62 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.matchNameList = matchNameList;
exports.transObjToArr = transObjToArr;
exports.transArrToObj = transArrToObj;
exports.resetObj = resetObj;
var _toArray = _interopRequireDefault(require("./toArray"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* 'a' ['a'] = true
* ['a'] ['a', 'b'] = false
*/
function matchNameList(name, changedName) {
var namePathArray = (0, _toArray.default)(name);
var changedNamePathArray = (0, _toArray.default)(changedName);
if (namePathArray.length !== changedNamePathArray.length) {
return false;
}
return namePathArray.every(function (nameUnit, i) {
return changedNamePathArray[i] === nameUnit;
});
}
/**
* obj: { 0: [{name: 1}], 1: [{name: 2}], 2: undefined }
* len: 2
* return: [{name:1}, {name:2}]
*/
function transObjToArr(obj, len) {
var arr = [];
for (var i = 0; i < len; i += 1) {
arr.push(obj[i]);
}
return arr;
}
/**
* arr: [{name: 1}]
* len: 2
* return: {0: {name:1}, 1: undefined}
*/
function transArrToObj(arr, len) {
var obj = Object.create(null);
for (var i = 0; i < len; i += 1) {
obj[i] = arr[i];
}
return obj;
}
/**
* obj: { 0: [{name: 1}], 1: [{name: 2}], 2: [{name: 3}] }
* len: 2
* return: { 0: [{name: 1}], 1: [{name: 2}], 2: undefined }
*/
function resetObj(obj, len) {
var keys = Object.keys(obj);
var oLen = keys.length;
if (oLen <= len) {
return obj;
}
for (var i = len; i < oLen; i += 1) {
obj[i] = undefined;
}
return obj;
}