序言
本文详细介绍lodash-super
开源库。
这是一个lodash
增强版的工具库,由于lodash
会提供了最基本的一些专用工具方式,我们在业务中使用中,通常需要对它进行再度封装形式,较为不便。
因此,该库提供了一个在 需求场景中更为通用工具库。
希望对大家有帮助!
愿大家点一个star
,或是一同共创。
组装
npm install lodash-super
或yarn add lodash-super
方式
_S.array2obj(array, key = "key", value = "value")
将 对象数组(由目标所组成的二维数组) 转化成 目标
适用标识目录,前面是标识二维数组,然后端必须标识目标
事例
const obj = _S.array2obj([{key:'label1',value:1},{key:'label2',value:2}])
// => {label1:1,label2:2}
const obj1 = _S.array2obj([{name:'label1',id:1},{name:'label2',id:2}],'name','id')
// => {label1:1,label2:2}
源代码
/**
*
* @param {Array} array 等待处理的二维数组
* @param {String} key 构成对象键
* @param {String} value 构成目标数值
* @returns (Object): 回到形成的全新目标
*/
function array2obj(array, key = "key", value = "value") {
const object = {};
if (!isArray(array)) {
return console.error("传到的并不是二维数组");
}
for (let index = 0; index < array.length; index = 1) {
const item = array[index];
object[item[key]] = item[value];
}
return object;
}
export default array2obj;
_S.obj2array(obj, key = "key", value = "value")
将 目标 转化成 对象数组(由目标所组成的二维数组)
与 _S.array2obj() 反过来
(Array): 回到形成的全新二维数组。
事例
const obj = _S.obj2array({label1:1,label2:2})
// => [{key:'label1',value:1},{key:'label2',value:2}]
const obj1 = _S.obj2array({label1:1,label2:2} ,'name','id')
// => [{name:'label1',id:1},{name:'label2',id:2}]
源代码
/**
*
* @param {Object} obj 等待处理的对象
* @param {String} key 构成对象键
* @param {String} value 构成目标数值
* @returns (Array): 回到形成的全新二维数组
*/
function obj2array(obj, key = "key", value = "value") {
const array = [];
Object.keys(obj).forEach((ikey) => {
const ivalue = obj[ikey];
array.push({
[key]: ikey,
[value]: ivalue,
});
});
return array;
}
_S.filterBy(array, key='id', value, name='name')
取下 对象数组 中满足标准的这一项项 的特定数值
简单化 filter 的选值
事例
const obj = _S.filterBy([{id:1,name:'1'},{id:2,name:'2'}], 'id', 1, 'name')
// => '1'
源代码
/**
*
* @param {Array} array 等待处理的二维数组
* @param {String} key 配对 value 的对象的键
* @param {String} value 与 必须相同 的value值
* @param {any} name 必须获得的目标值
* @returns 获得过的 name 值
*/
function filterBy(array, key = "id", value, name = "name") {
const result = [];
if (!array.length) {
return result;
}
const arrayFilter = array.filter((item) => item[key] === value);
if (arrayFilter.length > 0) {
arrayFilter.forEach((item) => {
result.push(item[name]);
});
if (result.length <= 1) {
return result[0];
} else {
return result;
}
}
return undefined;
}
本站是一个以CSS、JavaScript、Vue、HTML为中心的前端开发技术网址。我们的使命是为众多前端工程师者提供全方位、全方位、好用的前端工程师专业知识和技术服务。
在网站上,大家可以学到最新前端开发技术,掌握前端工程师最新发布的趋势和良好实践。大家提供大量实例教程和实例,让大家可以快速上手前端工程师的关键技术和程序。
本站还提供了一系列好用的工具软件,帮助你更高效地开展前端工程师工作中。公司提供的一种手段和软件都要经过精心策划和改进,能够帮助你节约时间精力,提高研发效率。
此外,本站还拥有一个有活力的小区,你可以在社区里与其它前端工程师者沟通交流技术性、交流经验、处理问题。我们坚信,街道的能量能够帮助你能够更好地进步与成长。
在网站上,大家可以寻找你需要的一切前端工程师网络资源,使您成为一名更加出色的网页开发者。欢迎你添加我们的大家庭,一起探索前端工程师的无限潜能!