使用array1
:
array1 = [["hello",1],["bye",2]]
顺便array1[0]
返回["hello",1]
而不是["hello"]
我如何获得(在一个新的或相同的数组中):
array2 = [[1],[2]]
注意我的array1
(实际上)有很多元素。
感谢。
答案 0 :(得分:2)
var array1 = [
["hello", 1],
["bye", 2]
];
var array2 = array1.map(function(item) {
return [item[1]];
});
console.log(array2);
或仅检索Numbers
var array1 = [
["hello", 1],
["bye", 2]
];
var array2 = array1.map(function(item) {
return item.filter(function(val){ return isNaN(val); });
});
console.log(array2);
答案 1 :(得分:2)
您可以使用map
和filter
函数
var array1 = [ ["hello", 1], ["bye", 2] ]
var array2 = array1.map(a => a.filter(b => typeof b != 'string'))
console.log(array2);

答案 2 :(得分:0)
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/map
如果你有ES5那么
array1.map(function(x) { return x[1] })
答案 3 :(得分:0)
这不是最优雅的解决方案,但我在jsconsole中进行了测试,它确实有效。您也可以在Dev Tools中测试它
var array1 = [["hello",1],["bye",2]]
var numbers = [];
for (var i = 0; i < array1.length; i++) {
numbers.push(array1[i].filter((a) => +(a)))
}
console.log(numbers);
注意:这需要打字稿
答案 4 :(得分:0)
function selectElements(array, type) {
var result = [];
for (var i = 0; i < array.length; i++) {
var arr = [];
for (var j = 0; j < array[i].length; j++) {
if (typeof array[i][j] === type) {
arr.push(array[i][j]);
}
}
result.push(arr)
}
return result;
}
用法:
var array2 = selectElements(yourArray, "string")
答案 5 :(得分:0)
循环遍历数组。检查项目是否为数字。如果是这样,将其推送到一个新阵列,并将其拼接出旧的
for (var i = 0; i < array1.length; i++) {
if (typeof array1[i] === 'number') {
newArray.push(array1[i]);
array1.splice(i, 1);
{
}
答案 6 :(得分:0)
循环数组并删除字符串。 Splice使用位置(在您的情况下为0)和数字元素(要删除的1个元素)
for (var i=0; i < array1.length; i++){
array1[i].splice(0,1);
}
结果:[[1] [2]]