[英]How to use Array.push and return the pushed item?
我打电话给return someArr[someArr.push(newItem)-1];
它做得很好。
想知道这个极其常见的操作是否有句法“糖”? 我想知道因为返回的新length
确实比实际构造的对象(调用者可能想要填充)更不需要。 还是因为它实际上会返回“对象的副本”,而我对其字段的编辑在实际树中“将无法生存”?
就像 JS <= 1.2 所做的一样: return someArr.push(newItem);
只是想知道 - 是否有我不知道的新“替换”方法?
另外我有一个小问题“这是否返回对象的'独立'副本或对实际对象的'引用'?” 但是@PatricRoberts 的简单小提琴才发现它实际上是一个参考(正如预期的那样),所以我感谢他的帮助!
您也可以使用逻辑和 (&&)来做到这一点。
return someArr.push(newItem) && newItem;
由于推送后数组长度将为正,因此将评估最右侧的表达式并返回其值。
不过,这种语法不如@adiga 使用逗号运算符的答案清晰。
但是,我个人更喜欢在新行上返回新项目以使其更具可读性:
someArr.push(newItem);
return newItem;
您可以使用逗号运算符:
逗号运算符计算其每个操作数(从左到右)并返回最后一个操作数的值。
像这样:
return (someArr.push(newItem), newItem)
这相当于:
someArr.push(newItem);
return newItem
您可以通过返回对当前.length
的索引的赋值来实现。
return someArr[someArr.length] = newItem;
分配的结果是被分配的项目,因此这就是将返回的内容。
分配给数组的当前.length
自动扩展它。 请注意,分配给任何高于当前.length
索引都会在数组中留下漏洞。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.