在包含两个的Javascript数组中选择另一个元素
Pick the other element in a Javascript array containing two
我有一个javascript数组,如:
var arr = ['black', 'white'];
现在,如果我有一个包含其中一个元素的变量,我如何轻松地获得另一个?例如
var color = 'black';
var otherColor = '???'; // should be 'white', how can I get it?
我正在寻找最简单/最干净的方法。
另外,我不想改变原来的数组。
感谢
答案
关于:
var otherColor = arr[1 - arr.indexOf(color)]
您可以使用Array.prototype.filter:
var arr = ['black', 'white'];
var color = 'black';
var otherColor = arr.filter(function(item){ return item !== color })[0];
三元if
语句:
var otherColor = arr[0] === color ? arr[1] : arr[0];
arr.filter(x => x !== color)[0]
这里有一个ES6解决方案,它使用析构函数将其放入混合中。
const arr = ['black', 'white']; // our list of values.
const [black, white] = arr; // destructured into variables black and white
const color = 'black';
cont otherColor === black ? black : white;
var otherColor = arr[1 - arr.indexOf(color)]
相关文章:
- 我有多个复选框,并希望为其中 2 个制定规则,以便如果我选择 1 个,则无法选择另一个
- 从另一个日期选择器中选择另一个值后,获取日期选择器的起始值
- 在mvc4中选择另一个复选框时禁用复选框
- 如何在选择另一个列表框值时清除列表框值
- 在包含两个的Javascript数组中选择另一个元素
- 单击时更改表单选择选项并选择另一个选项
- 选择另一个单选按钮字段时重置单选按钮字段的最佳方法
- 带有数字的 Jquery 幻灯片 - 帮助让数字链接保持颜色,直到选择另一个链接
- 在 Angular JS 中选择另一个输入字段时禁用输入字段
- 选择另一个下拉列表时,Meteor 会动态筛选下拉列表
- 当使用 JQuery 和 ajax post 在表单中选择另一个下拉列表时更改下拉列表值
- 选择另一个对象应触发“之前:选择:清除”事件
- 在选择另一个选择字段时创建动态选择字段
- 使用javascript选择另一个选项后,循环隐藏选项不起作用
- 在Raphael中悬停时选择另一个路径对象
- Jquery在选择另一个图像时隐藏标题-包括jsFiddle
- AngularJS:如何在选择另一个跨度时取消选择跨度
- 为什么当我选择另一个文件并提交时,会发送另一个带有旧文件的请求
- 如何从一个jsp页面中获取选项标签名称来选择另一个jsp页的标签
- 下拉菜单在选择另一个值时没有更新