如何不使用方法.length计算数组中元素的数量

问题描述

function addValue(arr,value){

arr.push(值)

返回...

}

console.log(addValue([1,2,3],10)); // 4个而不使用.length

解决方法

Array#push返回数组的新长度。

function addValue(arr,value) {
    return arr.push(value);
}

console.log(addValue([1,2,3],10)); // 4 without using .length

,

尝试不使用.length的数组的纯JavaScript返回长度

var a = [1,3,4,5];

function arrayLength(a){
  var length = 0;
  while(a[length]!==undefined){
    length++;
  }
  return length;
}

console.log(arrayLength(a));       // 5
,
function addValue(arr,value){

arr.push(value)
var count=0;
arr.forEach(a=>{
count++;})
return count

}

console.log(addValue([1,10)); 
,

如果您不想使用.length,则可以通过手动计数来使自己的length变量

function addValue(arr,value){

    arr.push(value)

    return ( ()=> {
         var mylength=0
         for(var k in a) mylength+=1
         return mylength
    } )()

}

尽管我猜测您不想使用.length的原因仅是因为您使用了某种没有length属性的sudo数组,在这种情况下,您可以将其转换为数组

....
return Array.apply(null,ar).length

如果不是,虽然长度很接近你想要的

再次,作为计数元素的简写,另一种选择是仅保留键列表的长度

return Object.keys(ar).length

或Object.values

return Object.values(ar).length

或Object.entries

return Object.entries(ar).length

(通常,这些方法适用于sudo数组或从头开始制作的没有length属性的自定义数组)

或者只返回push函数

return ar.push(value)