构造函数与数组操作实践:寻找最大值、最小值及计算平均值

需积分: 10 0 下载量 159 浏览量 更新于2024-08-05 收藏 23KB DOCX 举报
在编程中,7.26作业涉及到数组操作的基本功能,如寻找数组中的最大值、最小值、求和以及计算平均值。给出的代码片段展示了如何通过扩展JavaScript的Array原型来实现这些方法。`min()`, `max()`, `sum()`, 和 `avg()` 方法分别用于找到数组中的最小值、最大值、所有元素之和以及平均值。 构造函数在JavaScript中扮演着创建对象的重要角色。它们与普通函数的主要区别在于,构造函数被设计用来通过`new`关键字进行实例化,从而创建特定类型的对象。这种方式使得代码更具复用性和组织性,减少了重复编写相似逻辑的必要。构造函数的创建方式与普通函数类似,但其名称通常采用驼峰命名法,并且首字母大写,以表明其特殊性质。 JavaScript中有多种创建对象的方法: 1. **内置构造函数创建对象**:如`var obj = new Array();`,使用内置构造函数可以直接创建特定类型的对象。 2. **字面量形式创建对象**:如`var obj = {key: value}`,使用对象字面量语法可以快速创建对象。 3. **工厂方式创建对象**:定义一个函数,返回一个新的对象实例,如`function createPerson(name) { return { name: name }; }`。 4. **构造函数创建对象**:通过构造函数实例化,如上面提到的`new Array()`或自定义构造函数。 5. **原型对象**:每个JavaScript对象都有一个原型(__proto__),可以通过原型链访问共有的方法和属性。 在处理JSON数据时,有两个关键操作: - **Json格式的字符串转对象**:使用`JSON.parse()`函数,如`var obj = JSON.parse('{"name": "John", "age": 30}');`。 - **对象转Json格式的字符串**:使用`JSON.stringify()`函数,如`var str = JSON.stringify(obj);`。 改变`this`指向是JavaScript中一个常见的动态行为,主要有三种方法: 1. **`call()`方法**:`obj.say.call(obj2, arg1, arg2)`,将函数的上下文切换到`obj2`,同时传入指定参数。 2. **`apply()`方法**:`obj.say.apply(obj2, [arg1, arg2])`,类似于`call()`,但接受一个数组作为参数。 3. **利用`bind()`方法**:先将函数绑定到某个对象,然后调用,如`var boundSay = obj.say.bind(obj2); boundSay(arg1, arg2)`。 理解这些基础的数组操作和JavaScript对象创建原理,对于处理日常开发中的数据处理和面向对象编程至关重要。熟练掌握这些技能能够提高编程效率,并有助于解决更复杂的问题。

帮我翻译为java代码 var http = (HttpWebRequest)WebRequest.Create(url); http.Accept = "*/*"; http.Method = "POST"; http.ContentType = "application/json; charset=utf-8"; TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0); var currentTimeSeconds = Convert.ToInt64(ts.TotalSeconds); var signature = AESHelper.AesLocal(AppId + ApiId + currentTimeSeconds, AppKey); http.Headers["signature"] = signature; http.Headers["apiname"] = ApiId; http.Headers["appid"] = AppId; http.Headers["appkey"] = AppKey; http.ContentType = "application/json;charset=utf-8"; http.UserAgent = "PostmanRuntime/7.26.8"; Random rd = new Random(); var rdNum = rd.Next(100000, 1000000); var signStr = thirdId + "/n" + rdNum + "/n" + currentTimeSeconds + "/n" + key+"/n"; var sign = Md5Helper.Encrypt32(Base64Helper.EncodeBase64(Encoding.UTF8,signStr)); http.Headers["thirdId"] = thirdId; http.Headers["nonceStr"] = rdNum.ToString(); http.Headers["time"] = currentTimeSeconds.ToString(); http.Headers["sign"] = sign; byte[] bs = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(data)); using (var reqStream = http.GetRequestStream()) { reqStream.Write(bs, 0, bs.Length); } using (var wr = http.GetResponse()) { using (var reader = new StreamReader(wr.GetResponseStream(), Encoding.UTF8)) { var result = reader.ReadToEnd(); var json = (JObject)JsonConvert.DeserializeObject(result); if (json["success"] == null || json["success"].ToString().ToLower() != "true") { Logger.Log(MethodBase.GetCurrentMethod().Name, GetType().Name, 1, "获取广告点位失败:" + JsonConvert.SerializeObject(param)+"////"+result, LogLevel.Error); } return result; } }

2023-06-09 上传