写点什么

LeetCode:2695. 包装数组,详细解释

作者:Lee Chen
  • 2023-06-08
    福建
  • 本文字数:711 字

    阅读完需:约 2 分钟

题目解析

原题链接:https://leetcode.cn/problems/array-wrapper/


题目要求我们创建一个名为ArrayWrapper的类,该类在构造函数中接受一个整数数组作为参数。该类应具有以下两个特性:


  1. 当使用 + 运算符将两个该类的实例相加时,结果值为两个数组中所有元素的总和。

  2. 当在实例上调用String()函数时,它将返回一个由逗号分隔的括在方括号中的字符串。

解题思路

我们可以通过定义一个类,并在类的原型上添加valueOftoString方法来实现这个功能。valueOf方法用于计算数组中所有元素的总和,toString方法用于返回数组的字符串表示形式。

代码实现

/** * @param {number[]} nums */var ArrayWrapper = function(nums) {  // 在构造函数中,我们接受一个数组并将其存储在实例的属性中  this.nums = nums;};
// valueOf方法返回数组中所有元素的总和ArrayWrapper.prototype.valueOf = function() { return this.nums.reduce((prev, curr) => { return prev + curr; }, 0);};
// toString方法返回数组的字符串表示形式ArrayWrapper.prototype.toString = function() { return `[${this.nums.toString()}]`;};
复制代码

代码解释

在这个解法中,我们首先定义了一个名为ArrayWrapper的类,并在构造函数中接受一个数组并将其存储在实例的属性中。


然后,我们在ArrayWrapper的原型上定义了valueOftoString方法。valueOf方法使用reduce函数来计算数组中所有元素的总和,toString方法返回一个由逗号分隔的括在方括号中的字符串。


当我们使用 + 运算符将两个ArrayWrapper的实例相加时,JavaScript 会自动调用valueOf方法,并将其结果相加。当我们在ArrayWrapper的实例上调用String()函数时,JavaScript 会自动调用toString方法,并返回其结果。

发布于: 刚刚阅读数: 4
用户头像

Lee Chen

关注

还未添加个人签名 2018-08-29 加入

还未添加个人简介

评论

发布
暂无评论
LeetCode:2695. 包装数组,详细解释_JavaScript_Lee Chen_InfoQ写作社区