Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 表中的元素UI排序值不起作用_Javascript_Vue.js_Element Ui - Fatal编程技术网

Javascript 表中的元素UI排序值不起作用

Javascript 表中的元素UI排序值不起作用,javascript,vue.js,element-ui,Javascript,Vue.js,Element Ui,我试图制作一个简单的排序函数,但它似乎不起作用 var Main={ 数据(){ 返回{ 表格数据:[{ 值:“1.799,37”, 姓名:“汤姆3” }, { 值:“2.183,88”, 姓名:“汤姆2” }, { 值:“3.837,05”, 名字:“汤姆4” }, { 值:“769,8”, 姓名:“汤姆6” }, { 值:“111,8”, 姓名:“汤姆6” }, { 值:“999,8”, 姓名:“汤姆6” }] } }, 方法:{ 测试:功能(a、b){ 返回a.value-b.value

我试图制作一个简单的排序函数,但它似乎不起作用

var Main={
数据(){
返回{
表格数据:[{
值:“1.799,37”,
姓名:“汤姆3”
}, {
值:“2.183,88”,
姓名:“汤姆2”
}, {
值:“3.837,05”,
名字:“汤姆4”
}, {
值:“769,8”,
姓名:“汤姆6”
}, {
值:“111,8”,
姓名:“汤姆6”
}, {
值:“999,8”,
姓名:“汤姆6”
}]
}
},
方法:{
测试:功能(a、b){
返回a.value-b.value;
}
}
}
变量向量=Vue.extend(主)
新Ctor().$mount('#app')
@import url(“//unpkg.com/element-ui@1.3.4/lib/theme-default/index.css)

在数组
tableData
中,每个对象都有一个
值,该值是一个字符串。
所以在比较字符串时使用排序方法。但在这里,我想你应该按数字对它们进行排序

您需要做的是更新您的方法,如下所示:

methods: {
  test: function(a, b) {
    return this.toFloat(a.value) - this.toFloat(b.value)
  },
  toFloat: function(num) {
    return parseFloat(num.replace('.','').replace(',','.'))
  }
}
注意,
replace
用于使字符串成为有效数字

var Main={
数据(){
返回{
表格数据:[{
值:“1.799,37”,
姓名:“汤姆3”
}, {
值:“2.183,88”,
姓名:“汤姆2”
}, {
值:“3.837,05”,
名字:“汤姆4”
}, {
值:“769,8”,
姓名:“汤姆6”
}, {
值:“111,8”,
姓名:“汤姆6”
}, {
值:“999,8”,
姓名:“汤姆6”
}]
}
},
方法:{
测试:功能(a、b){
返回this.toFloat(a.value)-this.toFloat(b.value)
},
toFloat:函数(num){
返回parseFloat(num.replace('.','')。replace('.','.'))
}
}
}
变量向量=Vue.extend(主)
新Ctor().$mount('#app')
@import url(“//unpkg.com/element-ui@1.3.4/lib/theme-default/index.css)

在数组
tableData
中,每个对象都有一个
值,该值是一个字符串。
所以在比较字符串时使用排序方法。但在这里,我想你应该按数字对它们进行排序

您需要做的是更新您的方法,如下所示:

methods: {
  test: function(a, b) {
    return this.toFloat(a.value) - this.toFloat(b.value)
  },
  toFloat: function(num) {
    return parseFloat(num.replace('.','').replace(',','.'))
  }
}
注意,
replace
用于使字符串成为有效数字

var Main={
数据(){
返回{
表格数据:[{
值:“1.799,37”,
姓名:“汤姆3”
}, {
值:“2.183,88”,
姓名:“汤姆2”
}, {
值:“3.837,05”,
名字:“汤姆4”
}, {
值:“769,8”,
姓名:“汤姆6”
}, {
值:“111,8”,
姓名:“汤姆6”
}, {
值:“999,8”,
姓名:“汤姆6”
}]
}
},
方法:{
测试:功能(a、b){
返回this.toFloat(a.value)-this.toFloat(b.value)
},
toFloat:函数(num){
返回parseFloat(num.replace('.','')。replace('.','.'))
}
}
}
变量向量=Vue.extend(主)
新Ctor().$mount('#app')
@import url(“//unpkg.com/element-ui@1.3.4/lib/theme-default/index.css)

sortName(a、b){
if(a.name.toUpperCase()b.name.toUpperCase())返回1;
返回0;
}
sortName(a、b){
if(a.name.toUpperCase()b.name.toUpperCase())返回1;
返回0;
}

如果a.name===null,我希望null元素是最后一个元素,该怎么办@Anson如果a.name===null,并且我希望null元素是最后一个元素,该怎么办@安森