JS方法---判断数组是否相等

1、 将两个数组转成字符串比较,但是发现他们只是顺序不相等也被当做不相等

[1,2,3].toString()== [3,2,1].toString() ----false

2、我们可以先把数组排序按照从小到大的顺序sort()函数

[1,2,3].sort().toString()== [3,2,1].sort().toString() —true 这样的就是"1,2,3"=="1,2,3"结果是相等的
 

systemIndic:['浏览量(PV)','访客数(UV)', 'IP数','跳出率','平均访问时长'], //系统默认指标
orderIndic:['浏览量(PV)','访客数(UV)','订单数','订单金额','订单转化率'], //订单默认质保
selectIndic:['浏览量(PV)','访客数(UV)', 'IP数','跳出率','平均访问时长']  //所选指标


const {systemIndic,orderIndic,selectIndic} = this.state
   if(selectIndic.sort().toString() == systemIndic.sort().toString()){
      this.setState({selectedDefault:'system'})
   }else if(selectIndic.sort().toString() == orderIndic.sort().toString()){
      this.setState({selectedDefault:'order'})
   }else {
      this.setState({selectedDefault:''})
}

### 回答1: 可以使用JSON.stringify()方法数组转换成字符串,然后再进行比较。例如: ``` function arraysEqual(arr1, arr2) { return JSON.stringify(arr1) === JSON.stringify(arr2); } ``` 这个函数会返回true如果数组相等,否则返回false。 ### 回答2: 在JavaScript中,判断数组是否相等可以使用循环遍历比较数组的每个元素。以下是一种可能的实现方式: 1. 首先,判断数组的长度是否相等,如果长度不相等,则这数组相等。可以使用`length`属性来获取数组的长度。 2. 如果数组长度相等,则可以进一步比较它们的每个元素。可以使用`for`循环来遍历数组。 3. 在循环中,逐个比较数组对应位置的元素是否相等。可以使用索引操作符`[]`来获取数组中的元素。 4. 如果在循环中找到不相等的元素,则可以判断数组相等,并立即返回`false`。 5. 如果循环结束后没有找到不相等的元素,则可以判断数组相等,并返回`true`。 以下是该方法的代码示例: ```javascript function arraysEqual(arr1, arr2) { if (arr1.length !== arr2.length) { return false; } for (let i = 0; i < arr1.length; i++) { if (arr1[i] !== arr2[i]) { return false; } } return true; } ``` 使用该方法,可以判断数组是否相等。例如,对于数组`[1, 2, 3]`和`[1, 2, 3]`,调用`arraysEqual`函数会返回`true`。而对于数组`[1, 2, 3]`和`[1, 2, 4]`,调用`arraysEqual`函数会返回`false`。 ### 回答3: 要判断数组是否相等,我们可以比较数组的长度是否相同。如果长度不同,那么这数组肯定不相等。如果长度相同,我们可以逐个比较数组中每个元素是否相同。 首先,我们可以使用`array1.length`和`array2.length`来比较数组的长度。如果长度不同,我们可以直接返回false,表示数组相等。 如果长度相同,我们可以遍历其中一个数组,使用`array1[i]`和`array2[i]`来比较每个位置上的元素。如果找到个不相等的元素,我们可以直接返回false,表示数组相等。 如果遍历完所有元素没有找到不相等的元素,那么数组相等的,我们可以返回true表示数组相等。 下面是一个使用JavaScript实现的例子: ```javascript function arraysAreEqual(array1, array2) { if (array1.length !== array2.length) { return false; } for (var i = 0; i < array1.length; i++) { if (array1[i] !== array2[i]) { return false; } } return true; } // 使用例子 var a = [1, 2, 3]; var b = [1, 2, 3]; var c = [1, 2, 4]; console.log(arraysAreEqual(a, b)); // 输出true console.log(arraysAreEqual(a, c)); // 输出false ``` 这个例子中的`arraysAreEqual`函数接受数组作为参数,返回一个布尔值表示数组是否相等。在使用例子中,我们先定义了三个数组`a`、`b`和`c`,然后分别调用`arraysAreEqual`函数来比较它们是否相等。根据数组元素的不同,输出结果会不同。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值