Object.keys(data).length计数项目而不是条目

时间:2018-10-01 09:33:27

标签: javascript

我有此数据:

ngOnInit() {
 this.generalDetailForm.controls['date_of_delivery'].patchValue("16/11/2011")
}

为了获得条目数...在上面的示例中,该数量应为1,我添加了以下代码:

{id: "001", name="name 1", lastname="lastname 1", active="0"}

这将返回4而不是1。

我在这里做错了什么?在这里输入代码

4 个答案:

答案 0 :(得分:1)

当然,这是Object.keys()的预期行为,因为它返回传递的object的属性数组。但您期望此类对象的数组长度。 例如:-

let arr = [
  {id: "001", name="name 1", lastname="lastname 1", active="0"},
];
console.log(arr.length); // It outputs 1

答案 1 :(得分:0)

  

Object.keys()方法返回给定对象自己的数组   财产

签出-https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys

答案 2 :(得分:0)

int main()
{
    TheSecondVeryBestClassEverMade bodyOder("Mambo Number 5 is my jam baby!");
    bodyOder.printName();
    return 0;
}

这将返回一个包含对象中所有键的数组。

所以Object.keys(data) 返回Object.keys(data),因此当返回数组的访问长度属性时,您得到['id', 'name', 'lastname', 'active']

  

在这种情况下,我需要得到1 ...因为{id:“ 001”,name =“ name 1”,   lastname =“ lastname 1”,active =“ 0”}是1个条目

4返回包含对象的所有键的数组,并且每个键都存储在返回的数组的索引中,因此在这种情况下,您将不会获得Object.keys(object1)作为返回值。 / p>

您可以做的是创建一个空数组,并将1返回的数组推入新创建的空数组中。现在,返回的数组将作为新数组中的一项插入。

Object.keys(object1)

以上代码将返回const object1 = {id: "001", name:"name 1", lastname:"lastname 1", active:"0"}; const array = []; array.push(Object.keys(object1)); console.log(array.length);

答案 3 :(得分:0)

这将返回4而不是1,因为您的data不是数组。

var arrays = [];
var data = {"id": "001", "name"="name 1", "lastname"="lastname 1", "active"="0"};
arrays.push(data);
console.log(array.length);//  will print 1

Object.keys(data).length // will return 4