@sula/ruler
Version:
68 lines (55 loc) • 1.26 kB
JavaScript
import toArray from './toArray';
/**
* 'a' ['a'] = true
* ['a'] ['a', 'b'] = false
*/
export function matchNameList(name, changedName) {
var namePathArray = toArray(name);
var changedNamePathArray = toArray(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}]
*/
export 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}
*/
export 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 }
*/
export 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;
}