情景:
ajax提交数据到http://www.alan.com?name=alan&age=18;
现有参数:
path = http://www.alan.com
params={‘name’:’alan’,’age’:’18’}
需求:
需要整合path和params成http://www.alan.com?name=alan&age=18
代码:
buildWebUrl:function( path ,params){
var url = "/web" + path;
var _paramUrl = '';
if( params ){
_paramUrl = Object.keys(params).map(function(k) {
return [encodeURIComponent(k), encodeURIComponent(params[k])].join("=");
}).join('&');
_paramUrl = "?"+_paramUrl;
}
return url + _paramUrl
}
说明:
Number1:
Object.keys(params) 取出params里的所有键值以数组的形式输出。
如:
object.keys({'name':'alan','age':'18'})的结果为['name','age']
Number2:
map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
map() 方法按照原始数组元素顺序依次处理元素。
注意: map() 不会对空数组进行检测。
注意: map() 不会改变原始数组。
语法:array.map(function(currentValue,index,arr), thisValue)
如:
var numbers = [4, 9, 16, 25];
console.log(numbers.map(Math.sqrt));
结果为:
2,3,4,5
Number3:
join() 方法用于把数组中的所有元素通过指定的分隔符连接转换一个字符串。
语法:array.join(separator)
如:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var energy = fruits.join(" and ");
结果为:
Banana and Orange and Apple and Mango