刪除元素的特定類型(字符串,整數)隨着array1
:使用Javascript - 從數組
array1 = [["hello",1],["bye",2]]
順便說array1[0]
返回["hello",1]
而不是["hello"]
我怎樣才能(在新,或相同的陣列):
array2 = [[1],[2]]
注意我的array1
(實際上)有很多元素。
感謝。
刪除元素的特定類型(字符串,整數)隨着array1
:使用Javascript - 從數組
array1 = [["hello",1],["bye",2]]
順便說array1[0]
返回["hello",1]
而不是["hello"]
我怎樣才能(在新,或相同的陣列):
array2 = [[1],[2]]
注意我的array1
(實際上)有很多元素。
感謝。
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);
非常感謝你Rayon =)真正快速的回答,完美的工作。 – ShEp
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/map
如果你有ES5然後
array1.map(function(x) { return x[1] })
你可以使用map
和filter
功能
var array1 = [ ["hello", 1], ["bye", 2] ]
var array2 = array1.map(a => a.filter(b => typeof b != 'string'))
console.log(array2);
這不是最優雅的解決方案,但我在jsconsole中測試它,它工作。您還可以在開發工具測試
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);
注:這需要打字稿
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")
循環遍歷數組。檢查項目是否是數字。如果是的話,將它推到一個新的陣列,並將它拼接出舊
for (var i = 0; i < array1.length; i++) {
if (typeof array1[i] === 'number') {
newArray.push(array1[i]);
array1.splice(i, 1);
{
}
循環數組並移除字符串。拼接與位置(0你的情況)和數字內容作品(1元刪除)
for (var i=0; i < array1.length; i++){ array1[i].splice(0,1); }
結果:[1] [2]
而你在哪裏卡住,你有什麼嘗試? –
array1 [0] [0]是你好 –
循環檢查數組,檢查是否typeof [x] [y] ===「String」,如果是,則刪除它 –