这就是我被要求做的事情: 给定一系列项目,检查每对项目的相等性和等效性,并注销结果 例如,
var arItems = [2,2," 2",true,' 6'];
将输出以下内容: 2和2是等价的 2和2相等但不相等 2和true既不相等也不等同 真假,既不平等也不等同
您不能使用===运算符,因此必须使用if / else和loops来检查每一对
您的数组应包含至少5个项目,演示每个有效输出
您的代码必须易于修改才能更改数组中的项目
这是我到目前为止所做的:
var arItems = [2, 2, "2", true, '6'];
for ( x = 0; x < 5; x++)
{
for ( y = 1; y < 5; y++)
{
if (typeof arItems [x]== typeof arItems [y] && arItems [x] == arItems [y])
{
console.log (arItems [x] + " and " + arItems [y] + " are equivalent");
}
else if (arItems [x] == arItems [y] && typeof arItems [x] != arItems [y])
{
console.log (arItems [x] + " and " + arItems [y] + " are equal but not equivalent");
}
else
{
console.log ( arItems [x] + " and " + arItems [y] + " are neither equal nor equivalent");
}
}
}
我试图让它检查以下对: 2&amp; 2。 2&amp; 2。 2&amp; &#34; 2&#34; 。 &#34; 2&#34; &安培;是的。 真实的&#39; 6&#39; 我不确定是否有什么东西可以添加到允许它自动运行的代码中,或者如果我必须写出整个代码以便它完全按原样跟随这些对。这就是它们正在比较索引 例: 指数[0,1,2,3,4] 被比较的对: 0&amp; 1。 1&amp; 2。 2&amp; 3。 3&amp; 4
答案 0 :(得分:2)
您可以使用从索引for
开始的单个1
循环以此方式迭代项目并结束。您可以通过从当前索引中减去1来引用每对的前一个元素。
我还更新了您的条件代码,以显示它在实践中更有可能完成。
var items = [2, 2, "2", true, '6'];
for (var i = 1; i < items.length; i++) {
var item1 = items[i - 1];
var item2 = items[i];
if (item1 === item2) {
console.log(item1, "and", item2, "are equivalent");
} else if (item1 == item2) {
console.log(item1, "and", item2, "are equal but not equivalent");
} else {
console.log(item1, "and", item2, "are neither equal nor equivalent");
}
}