超级有用的JavaScript函数
jopen
11年前
下面是一些超级有用的JavaScript函数。
将字符串中的第一个字母大写
这个函数是PHP uctoupper()函数的一个克隆!
function ucfirst(string) { return string.charAt(0).toUpperCase() + string.slice(1); }
搜索JavaScript 数组和对象集合
提供一个对象或一个对象数组,一个键和一个值。然后返回匹配键的对象或对象 - 值对。
function searchObjects(obj, key, val) { var objects = []; for (var i in obj) { if (typeof obj[i] == 'object') { objects = objects.concat(searchObjects(obj[i], key, val)); } else if (i == key && obj[key] == val) { objects.push(obj); } } return objects; }
搜索JavaScript对象集合,返回索引位置
通常用它来查找索引,然后就可以直接引用该对象。
function getObjectIndexFromId(obj, id) { if (typeof obj == "object") { for (var i = 0; i < obj.length; i++) { if (typeof obj[i] != "undefined" && typeof obj[i].id != "undefined" && obj[i].id == id) { return i; } } } return false; }
比较JavaScript对象
提供了两个对象,它会告诉你,它们是否相同。可用于实现表单“更改未保存”的提示非常有用。
function compareObjects(obj1, obj2) { for (var param in obj1) { if (typeof obj1[param] == 'object' && obj1[param] != null) { //If the length is different, we dont need to check if the values have changed (As it is obvious they have!) if (typeof obj2[param] != "undefined" && obj1[param].length != obj2[param].length) { return true; } //Return if we have already found evidence of a change, otherwise keep checking the rest of the object if (compareObjects(obj1[param], obj2[param]) === true) return true; } else { //Ignore the angular added $$hashKey variable if (param != "$$hashKey") { //If the values are different then return true if (obj1[param] != obj2[param]) { return true; } } } } //Once every value has been checked and nothing is different, return false; return false; }
MySQL的日期时间转为JavaScript的日期
快速将一个MySQL的日期时间字符串转换成JavaScript的日期对象。
function mysqlDateTimeToJSDate(datetime) { // Split timestamp into [ Y, M, D, h, m, s ] var t = datetime.split(/[- :]/); return new Date(t[0], t[1]-1, t[2], t[3], t[4], t[5]); }