我对JavaScript比较陌生,所以不用我了。 虽然解决了Freecodecamp中需要在两个数组中找到唯一值的问题之一。我写了一小段代码。java脚本中数组末尾的未知元素?
它仅含整数数组工作得很好。比较字符串数组时出现问题。尾部元素被添加到最终输出数组,它甚至不可见。它应该只为这段代码输出一个值。
就是这样。
"[*] Total unique values found = 2"
"[*] Unique values = pink wool,"
这是code.Quite混淆它。
function diffArray(arr1, arr2) {
var newArr = [];
var length1 = arr1.length;
var length2 = arr2.length;
var test = true;
var tab = ' ';
console.log('[*] Starting ... '+tab);
while(arr1.length > 0 && arr2.length > 0)
{
console.log('[*] Entering while loop.');
reset:
for (var i=0; i<arr2.length; i++)
{
console.log('[*] Comparing '+arr1[0]+' and '+arr2[i]);
if(arr1[0] == arr2[i])
{
console.log('[*] Matched ... ')
console.log(' $ Removig '+arr1[0]+' from arr1 and arr2');
arr1.splice(0, 1);
arr2.splice(i, 1);
console.log(" $ arr1 length = "+arr1.length);
console.log(" $ arr2 length = "+arr2.length);
break reset;
} else if (i == arr2.length-1)
{
console.log(" $ No match found.");
console.log('[*] Pushing '+arr1[0]+' in newArr');
newArr.push(arr1[0]);
arr1.splice(0, 1);
console.log('[*} newArr = '+newArr);
} else {
console.log('[*] Match failed.')
}
}
}
if(arr2.length > 0) {
newArr.push(arr2);
} else {
newArr.push(arr1);
}
console.log('[*] Total unique values found = '+newArr.length);
console.log('[*] Unique values = '+newArr);
}
diffArray(["diorite", "andesite", "grass", "dirt", "pink wool", "dead shrub"], ["diorite", "andesite", "grass", "dirt", "dead shrub"]);
以下是链接到JSBin与工作示例。
这里是一个链接JSBin与字符串数组这不是工作..
感谢您的帮助。
寻求帮助时,请带缩进和可读性很强,始终格式化代码的时间。 –
你并不需要使用JSBin的例子,使用[堆栈片段](http://meta.stackoverflow.com/questions/270944/feedback-requested-stack-snippets-2-0),使你的问题的可执行文件。 – Barmar
@Barmar谢谢你的提示。我不知道这一点。 – Dimensionless