Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从整数字符串返回缺少的元素_Javascript - Fatal编程技术网

Javascript 从整数字符串返回缺少的元素

Javascript 从整数字符串返回缺少的元素,javascript,Javascript,我正在尝试编写一个函数,该函数接受0到9(包括0和9)之间的唯一整数数组,并返回缺少的元素。这是我得到的。近在咫尺 var currentPlace = 0; function getMissingElement(superImportantArray){ while (currentPlace < 9){ for (var i = 0; i < 10; i++) { var arrayNum = superImportantArra

我正在尝试编写一个函数,该函数接受0到9(包括0和9)之间的唯一整数数组,并返回缺少的元素。这是我得到的。近在咫尺

var currentPlace = 0;

function getMissingElement(superImportantArray){
    while (currentPlace < 9){
        for (var i = 0; i < 10; i++) {
            var arrayNum = superImportantArray[currentPlace]
            if (i == arrayNum) {
                currentPlace ++;
                console.log("so it's not " + i);
            }
            else if (i !=arrayNum) {
                console.log("try..." + i);
            }
        }
    }
}
// run
var myArray = [0,5,1,3,2,9,7,6,4]; // this test should return 8
getMissingElement(myArray);
var currentPlace=0;
函数getMissingElement(superImportantArray){
while(当前位置<9){
对于(变量i=0;i<10;i++){
var arrayNum=超级重要阵列[当前位置]
if(i==arrayNum){
currentPlace++;
log(“所以它不是”+i);
}
否则如果(i!=arrayNum){
console.log(“try…”+i);
}
}
}
}
//跑
var myArray=[0,5,1,3,2,9,7,6,4];//此测试应返回8
GetMissingeElement(myArray);
我不确定我的方法是否正确。谢谢您的时间。

函数getMissingElement(superImportantArray){
function getMissingElement(superImportantArray){
    var result = [], length = Math.max(10, superImportantArray.length);
    for (var i = 0; i < length; i++) {
        if(superImportantArray.indexOf(i) == -1){
            result.push(i);
        }
    }
    return result;
}
var result=[],length=Math.max(10,superportantarray.length); 对于(变量i=0;i
试试这个。这将返回缺少元素的数组,否则返回空数组。

函数getMissingElement(超重要排列){
var result=[],length=Math.max(10,superportantarray.length);
对于(变量i=0;i
试试这个。这将返回缺少元素的数组,否则返回空数组。

所以这里有一种方法:因为您知道数组只包含
0
9
之间的值,所以您可以构建一个数字的“集合”,并从集合中删除数组中的每个“可见”值:

function getMissingElement(superImportantArray){
    var numbers = {};
    for (var i = 0; i < 10; i++) {
        numbers[i] = true
    }

    for (var i = 0, l = superImportantArray.length; i < l; i++) {
        delete numbers[superImportantArray[i]];
    }

    return Object.keys(numbers);
}
函数GetMissingeElement(superImportantArray){
变量数={};
对于(变量i=0;i<10;i++){
数字[i]=true
}
对于(变量i=0,l=superImportantArray.length;i

这将返回丢失的所有数字的数组。如果总是只有一个缺少的数字,您可以轻松地修改它以直接返回该数字。

因此,有一种方法可以做到这一点:因为您知道数组只包含从
0
9
的值,所以您可以构建一个数字的“集合”,并从集合中删除数组中的每个“可见”值:

function getMissingElement(superImportantArray){
    var numbers = {};
    for (var i = 0; i < 10; i++) {
        numbers[i] = true
    }

    for (var i = 0, l = superImportantArray.length; i < l; i++) {
        delete numbers[superImportantArray[i]];
    }

    return Object.keys(numbers);
}
函数GetMissingeElement(superImportantArray){
变量数={};
对于(变量i=0;i<10;i++){
数字[i]=true
}
对于(变量i=0,l=superImportantArray.length;i
这将返回丢失的所有数字的数组。如果总是只有一个缺少的号码,您可以轻松地修改它,直接返回该号码。

这样就可以了

function getMissingElement(arrayTest) {
    // create an array with all digits
    var digitsArray = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
    var index;
    for (var i=0; i<arrayTest.length; i++) {
         // get the index of current digit on our array
         index = digitsArray.indexOf(arrayTest[i]);
         // if found, remove it from our array.
         if (index >= 0) {
             digitsArray.splice(index,1);
         }
    }
    // the last remaining digit in the original array should be the one missing.
    return (digitsArray[0]);
}
函数GetMissingeElement(arrayTest){
//创建一个包含所有数字的数组
var digitsArray=[0,1,2,3,4,5,6,7,8,9];
var指数;
对于(变量i=0;i=0){
数字阵列拼接(索引1);
}
}
//原始数组中最后剩余的数字应该是缺少的数字。
返回(digitsArray[0]);
}
这应该可以

function getMissingElement(arrayTest) {
    // create an array with all digits
    var digitsArray = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
    var index;
    for (var i=0; i<arrayTest.length; i++) {
         // get the index of current digit on our array
         index = digitsArray.indexOf(arrayTest[i]);
         // if found, remove it from our array.
         if (index >= 0) {
             digitsArray.splice(index,1);
         }
    }
    // the last remaining digit in the original array should be the one missing.
    return (digitsArray[0]);
}
函数GetMissingeElement(arrayTest){
//创建一个包含所有数字的数组
var digitsArray=[0,1,2,3,4,5,6,7,8,9];
var指数;
对于(变量i=0;i=0){
数字阵列拼接(索引1);
}
}
//原始数组中最后剩余的数字应该是缺少的数字。
返回(digitsArray[0]);
}

我只是想发布我的评论中的答案。在我看来,处理这个问题的一个更简单的方法是在原始数组上循环,并在它们表示的索引处标记一个新数组。例如,如果数字为4,则标记新数组中的第4个索引。之所以如此,是因为一旦完成了这一点,one索引就应该保持不滞后。剩下要做的就是找到无滞后指数

下面是一个示例(我在这里注释了代码,而不是小提琴):


演示:

只是想发布我的评论答案。在我看来,处理这个问题的一个更简单的方法是在原始数组上循环,并在它们表示的索引处标记一个新数组。例如,如果数字为4,则标记新数组中的第4个索引。之所以这样做,是因为一旦这样做,一个索引应该保持不滞后。剩下要做的就是找到无滞后指数

下面是一个示例(我在这里注释了代码,而不是小提琴):


演示:

这一款对眼睛更好

function getMissingElement(superImportantArray) {
 return superImportantArray.reduce(function (sum, value) {return sum - value;}, 45);
}

这个对眼睛比较好

function getMissingElement(superImportantArray) {
 return superImportantArray.reduce(function (sum, value) {return sum - value;}, 45);
}

您的函数当前返回/记录什么?为什么你认为它不起作用?另一种方法是你可以在阵列上循环,将该值放入一个新数组中,如果它是一个索引,那么它将位于该数组所处的位置…然后找到第一个空索引。这或多或少是我如何处理它的:-注意它不需要嵌套loops@FelixKling它非常粗略地记录除了缺少的元素之外的所有内容。这是对的,但我看不出怎么把数字8放出来。@ian干得好ian,非常感谢,非常整洁。你的函数当前返回/记录什么?为什么你认为它不起作用?另一种方法是你可以在阵列上循环,将该值放入一个新数组中,如果它是一个索引,那么它将位于该数组所处的位置…然后找到第一个空索引。这或多或少是我如何处理它的:-注意它不需要嵌套loops@FelixKling它非常粗略地记录除了缺少的元素之外的所有内容。这是一种正确的做法,但我看不出在所有这些之后如何把数字8放出来。@ian干得好ian,非常感谢,非常整洁