javascript 获取汉字笔画拼音,使用笔画排序

今天同学问到要通过汉字笔画来排序,问怎么实现,其实我也不知道,但是我觉得这种东西肯定有解决方案,于是去百度搜了搜

果然,大神写的 cnchar 就出现了。地址:https://github.com/theajack/cnchar

写的很简单,也很方便,引入一个 js就完事了。

 <script src="https://www.theajack.com/cnchar/assets/js/cnchar.min.js"></script>

1.spell()
        获取汉字的全拼。如"汉字".spell()的结果就是HanZi。默认是每个汉字首字母大写,如果希望全部大写可以这样写:"汉字".spell("up") 或 "汉字".spell("upper"),参数大小写不限制。
2.spellFirst()
        获取每个汉字的首字母。如 "汉字".spellFirst() 的结果就是 HZ。默认是大写,如果希望全部小写可以这样写:"汉字".spellFirst("low") 或 "汉字".spellFirst("lower"),参数大小写不限制。
3.stroke()
        获取汉字的笔画数。如 "汉字".stroke() 的结果就是 11。

此处写一个示例,通过 首字母笔画排序:

数据一般都存在一个数组里面,一串数据,里面有个 name,我们就获取这个额name的首字母的笔画,在外面定义一个 新的数组,遍历原来的数据,在循环里面定义一个 json对象,加一个属性为 笔画,一个 data 属性为该条数据,然后外面定义的数组里面存的就是 有 笔画的数据了,然后再对该数据进行排序就大功告成

看看代码:

<script src="https://www.theajack.com/cnchar/assets/js/cnchar.min.js" ></script>
<script>
	// 原始数据
	var data = [
		{
			"name":"唐某人"
		},
		{
			"name":"张子强"
		},
		{
			"name":"李某人"
		},
		{
			"name":"王某人"
		},
		{
			"name":"一某人"
		},
	];

	// 外面定义的数组,存操作后的数据
	var result = [];
	
	// 数据处理,绑定笔画
	for (var i = data.length - 1; i >= 0; i--) {
		// 定义一个对象
		var obj = {};
		// 存储笔画
		obj.stroke = data[i].name.substring(0,1).stroke();
		// 存储数据
		obj.data = data[i];
		// 存入result数组里面去
		result.push(obj);
	}

	// 排序 使用 result.stroke 也就是笔画排序
	result.sort(function(a,b){
		return a.stroke - b.stroke;
	});

	console.log( result );

</script>

运行效果:

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值