我有一个第二个数组,看起来像这样
[['He', 2], ['saw', 1], ['her', 2], ['walking', 1], ['so', 1], ['asked', 1]]
我需要按右数字对数组进行字母排序
function sortText(arr, word) {
if(word)
return arr.map(function(item) { return item[1]; }).sort();
}
*如果单词parmeter为true,则对数组进行字母排序;如果为false,则按右边的数字对数组进行排序*
the wanted result
if(word==true)
[['He', 2], ['asked', 1], ['her', 2], ['saw', 1], ['so', 1], ['walking', 1]]
if(word==false)
[['saw', 1], ['walking', 1], ['so', 1], ['asked', 1], ['He', 2], ['her', 2]]
答案 0 :(得分:1)
尝试:-
//WITH FIRST COLUMN
arr = arr.sort(function(a,b) {
return a[0] - b[0];
});
//WITH SECOND COLUMN
arr = arr.sort(function(a,b) {
return a[1] - b[1];
});
如果这样做没有帮助,请使用“>”代替“-”。
请告诉我这是否对您有帮助。
答案 1 :(得分:1)
您对数组进行排序的依据是:
var arr = [['He', 2], ['saw', 1], ['her', 2], ['walking', 1], ['so', 1], ['asked', 1]];
function sortText(arr, wor) {
arr.sort(([str1, nb1], [str2, nb2]) => wor ? (str1 > str2 ? 1 : -1) : nb1 - nb2)
}
sortText(arr, true)
console.log(arr);
sortText(arr, false);
console.log(arr);
答案 2 :(得分:1)
如果需要,您可以交换排序顺序:
<VBox maxHeight="-Infinity" maxWidth="300.0" minHeight="300.0" minWidth="-Infinity" prefHeight="300.0" prefWidth="300.0" xmlns="http://javafx.com/javafx/10.0.1" xmlns:fx="http://javafx.com/fxml/1">
<children>
<StackPane prefHeight="75.0" prefWidth="10.0" >
<children>
<Label prefHeight="38.0" prefWidth="327.0" text="LABEL">
<font>
<Font name="System Bold" size="18.0" />
</font>
</Label>
</children></StackPane>
<HBox alignment="CENTER" prefHeight="50.0" prefWidth="300.0" spacing="10.0">
<children>
<Button mnemonicParsing="false" prefWidth="50.0" text="7">
<font>
<Font size="18.0" />
</font>
</Button>
<Button mnemonicParsing="false" prefWidth="50.0" text="8">
<font>
<Font size="18.0" />
</font>
</Button>
<Button mnemonicParsing="false" prefWidth="50.0" text="9">
<font>
<Font size="18.0" />
</font>
</Button>
<Button mnemonicParsing="false" prefWidth="50.0" text="/">
<font>
<Font size="18.0" />
</font>
</Button>
</children>
</HBox>
<HBox alignment="CENTER" prefHeight="50.0" prefWidth="300.0" spacing="10.0">
<children>
<Button mnemonicParsing="false" prefWidth="50.0" text="4">
<font>
<Font size="18.0" />
</font>
</Button>
<Button mnemonicParsing="false" prefWidth="50.0" text="5">
<font>
<Font size="18.0" />
</font>
</Button>
<Button mnemonicParsing="false" prefWidth="50.0" text="6">
<font>
<Font size="18.0" />
</font>
</Button>
<Button mnemonicParsing="false" prefWidth="50.0" text="*">
<font>
<Font size="18.0" />
</font>
</Button>
</children>
</HBox>
<HBox alignment="CENTER" prefHeight="50.0" prefWidth="300.0" spacing="10.0">
<children>
<Button mnemonicParsing="false" prefWidth="50.0" text="3">
<font>
<Font size="18.0" />
</font>
</Button>
<Button mnemonicParsing="false" prefWidth="50.0" text="2">
<font>
<Font size="18.0" />
</font>
</Button>
<Button mnemonicParsing="false" prefWidth="50.0" text="1">
<font>
<Font size="18.0" />
</font>
</Button>
<Button mnemonicParsing="false" prefWidth="50.0" text="-">
<font>
<Font size="18.0" />
</font>
</Button>
</children>
</HBox>
<HBox alignment="CENTER" prefHeight="50.0" prefWidth="300.0" spacing="10.0">
<children>
<Button mnemonicParsing="false" prefWidth="110.0" text="0">
<font>
<Font size="18.0" />
</font>
</Button>
<Button mnemonicParsing="false" prefWidth="50.0" text="=">
<font>
<Font size="18.0" />
</font>
</Button>
<Button mnemonicParsing="false" prefWidth="50.0" text="+">
<font>
<Font size="18.0" />
</font>
</Button>
</children>
</HBox>
</children>
</VBox>
答案 3 :(得分:0)
array.sort(function(a, b) {
return a[1] > b[1];
})
或者如果您想要更严格的排序:
array.sort(function(a, b) {
return a[1] == b.[1] ? 0 : +(a[1] > b[1]) || -1;
})
真的有很多方法可以对数组进行排序,我希望这能给您一个大致的认识!
答案 4 :(得分:-1)
这是一个功能,可按字母顺序对文本进行排序,并通过小写所有内容来考虑大写字母。
function sortText(arr, alphabetically) {
if (alphabetically) {
return arr.sort((a, b) => {
if (a[0].toLowerCase() < b[0].toLowerCase()) return -1;
if (a[0].toLowerCase() > b[0].toLowerCase()) return 1;
});
} else {
return arr.sort((a, b) => {
return a[1] - b[1]
});
}
}
let data = [
['He', 2],
['saw', 1],
['her', 2],
['walking', 1],
['so', 1],
['asked', 1]
];
console.log(JSON.stringify(sortText(data, true)))
console.log(JSON.stringify(sortText(data, false)))