我想检查变量是JavaScript中的数组还是单个值.
我找到了一个可能的解决方案......
if (variable.constructor == Array)...
Run Code Online (Sandbox Code Playgroud)
这是最好的办法吗?
我有一个JavaScript数组dataArray,我想推入一个新的数组newArray.除了我不想newArray[0]成为dataArray.我想将所有项目推入新数组:
var newArray = [];
newArray.pushValues(dataArray1);
newArray.pushValues(dataArray2);
// ...
Run Code Online (Sandbox Code Playgroud)
甚至更好:
var newArray = new Array (
dataArray1.values(),
dataArray2.values(),
// ... where values() (or something equivalent) would push the individual values into the array, rather than the array itself
);
Run Code Online (Sandbox Code Playgroud)
所以现在新数组包含各个数据数组的所有值.是否有一些像pushValues现有的速记,所以我不必迭代每个人dataArray,逐个添加项目?
在JavaScript中连接N个对象数组的最有效方法是什么?
数组是可变的,结果可以存储在其中一个输入数组中.
这个问题完全重复:
如何将数组附加到现有的JavaScript数组?
如何在JavaScript中将数组附加到另一个数组?
一个人可能会提出这个问题的其他方式:
我花了一些时间寻找这个问题的答案.有时像这些最简单的那些是最难找到答案的,所以我希望在这里添加这个问题,根据这篇博文有很多关键词和短语.请随时使用任何其他有用的信息回答此问题,或编辑下面的关键词和短语.
我知道JavaScript函数可以接受"任意"数量的参数.
function f(){};
f(1,2,3,4 /*...*/);
Run Code Online (Sandbox Code Playgroud)
但我想知道实际上有多少"任何"可以限制?
比如说,让我说一百万个参数f().那会有用吗?或者翻译龙骨?
我猜测最大值是(a)特定于实现或(b)(2^32)-1,因为arguments对象是类似数组的.
我没有在语言规范中看到这一点,但我可能没有连接一些点.
如所描述的在这里,一个快速的方法来追加数组b到阵列的在JavaScript是a.push.apply(a, b).
您会注意到对象a被使用了两次.我们真的只想要这个push函数,并b.push.apply(a, b)完成同样的事情 - apply的第一个参数this为应用函数提供了它.
我认为直接使用Array对象的方法可能更有意义:Array.push.apply(a, b).但这不起作用!
我很好奇为什么不,如果有更好的方法来实现我的目标.(应用该push函数而无需两次调用特定数组.)
我有一个巨大的收藏品,我正在寻找集合内某处的钥匙.获取包含该键/索引的所有对象的引用列表或完整路径的可靠方法是什么?我使用jQuery和lodash,如果它有帮助,你可以忘记无限指针递归,这是一个纯JSON响应.
fn({ 'a': 1, 'b': 2, 'c': {'d':{'e':7}}}, "d");
// [o.c]
fn({ 'a': 1, 'b': 2, 'c': {'d':{'e':7}}}, "e");
// [o.c.d]
fn({ 'aa': 1, 'bb': 2, 'cc': {'d':{'x':9}}, dd:{'d':{'y':9}}}, 'd');
// [o.cc,o.cc.dd]
Run Code Online (Sandbox Code Playgroud)
fwiw lodash有一个_.find函数,可以找到两个嵌套深度的嵌套对象,但之后似乎失败了.(例如http://codepen.io/anon/pen/bnqyh)
我想将源数组的所有单个元素推送到目标数组,
target.push(source);
Run Code Online (Sandbox Code Playgroud)
将源的引用放在目标列表上.
而不是我想做的事:
for (i = 0; i < source.length; i++) {
target.push(source[i]);
}
Run Code Online (Sandbox Code Playgroud)
有没有一种方法在javascript中更优雅,没有明确编码重复循环?
虽然我在这,但正确的用语是什么?我不认为"平推"是正确的.谷歌搜索没有产生任何结果,因为源和目标都是数组.
我看到这个响应用于扩展一个数组,所以我尝试了:
console.log(['a', 'b'].push.apply(['c', 'd']));
Run Code Online (Sandbox Code Playgroud)
但它打印:
2
Run Code Online (Sandbox Code Playgroud)
不应该打印:
['a', 'b', 'c', 'd']
Run Code Online (Sandbox Code Playgroud)
如果不是我做错了什么?