我遇到了一些操纵数据的问题,因为我不太了解JavaScript。我有以下数组:
max
我需要的是选择所有第一个元素,然后选择所有第二个元素等。我已经尝试了
var Dict = [["x", "y", "z"], ["x", "w", "m"], ["u", "t", "d", "L"]];
但这似乎不起作用。然后我还需要删除所有" x"来自顶级阵列,由于第一个问题,我还没有尝试过。
答案 0 :(得分:1)
var item, First=[], Second=[], Third=[], Dict = [["x", "y", "z"],["x", "w", "m"], ["u", "t", "d", "L"]];
for(var m in Dict) {
// m does not refer to item in Dict, but index of item in Dict
First.push(Dict[m][0]);
Second.push(Dict[m][1]);
Third.push(Dict[m][2]);
}
console.log(First, Second, Third);
// ["x", "x", "u"] ["y", "w", "t"] ["z", "m", "d"]
答案 1 :(得分:1)
如果您有权访问es6,则可以执行以下操作:
const Dict = [["x", "y", "z"],["x", "w", "m"], ["u", "t", "d", "L"]];
const [First, Second, Third] = Dict.map((_, i) => Dict.map(entry => return entry[i]));
es5版本将是:
var Dict = [["x", "y", "z"],["x", "w", "m"], ["u", "t", "d", "L"]];
var Items = Dict.map(function(_, i) {
return Dict.map(function(entry) {
return entry[i];
});
});
var First = Items.shift(),
Second = Items.shift(),
Third = Items.shift();
答案 2 :(得分:0)
不要对数组使用for-in。获取所有第一个元素:
ES5
var firstElements = Dict.map(function(el) { return el[0]; });
ES6
var firstElements = Dict.map(el => el[0]);
(收益率["x", "x", "u"]
)
答案 3 :(得分:0)
尝试使用以下javascript,这应该可行:
var Dict = [
["x", "y", "z"],
["x", "w", "m"],
["u", "t", "d", "L"]
];
First = [];
Second = [];
Third = [];
for (m=0;m<Dict.length;m++) {
First.push(Dict[m][0]);
Second.push(Dict[m][1]);
Third.push(Dict[m][2]);
}
console.log(First);
console.log(Second);
console.log(Third);
提供以下三个数组:
["x", "x", "u"]
["y", "w", "t"]
["z", "m", "d"]
答案 4 :(得分:0)
试试这个:
var Dict = [["x", "y", "z"],["x", "w", "m"], ["u", "t", "d", "L"]];
var first = Dict.slice(0,1);
var second = Dict.slice(1,2);
var third = Dict.slice(-1);
要查看产生的内容,请点击此处:
更好的选择
如果您想使用一组可变索引,可以使用splice
代替slice
:
var Dict = [["x", "y", "z"],["x", "w", "m"], ["u", "t", "d", "L"]];
var result = [];
for(var i = 0; i < Dict.length; i++){
result.push(Dict.splice(i));
}
你可以在这里看到:
答案 5 :(得分:0)
检查这段代码
var Dict = [["x", "y", "z"],["x", "w", "m"], ["u", "t", "d", "L"]];
for(var i=0; i < Dict.length;i++){
allArr[i] = Dict.map(function(subArr){
return subArr[i]
});
//To Remove all the "x" from the array
if(i == 0){
allArr[i] = allArr[i].filter(val => val != "x")
}
}