首页 > 解决方案 > 我怎样才能使数组的“字符串”为真

问题描述

可以说我有

const all = ['all', 1, 1, 2]
if('all' == all)
 return all

我怎样才能使这个 if 语句为真。

标签: javascript

解决方案


假设您无法修改现有代码,但仍希望表达式 be true

当数组需要转换为基元时(与基元、数学运算等进行比较时),您可以覆盖 的[Symbol.toPrimitive]函数以更改默认行为Array.prototype

Array.prototype[Symbol.toPrimitive] = function() {
  return this[0];
}

const all = ['all', 1, 1, 2];
console.log('all' == all);

但是……你为什么要这样做?


推荐阅读