在数组中排序不同类型的变量

时间:2018-07-12 07:51:29

标签: javascript arrays reactjs

这里,我们在数组中有2种类型的变量,一种是整数,另一种是字符串,我试图通过字母顺序或字符串的长度对数组进行排序,但它会不断检测首先输入字符串。

    const val=[{
      x:"second",
      y:2
     },{
      x:"first",
      y:1
    }];   
    function compare(a,b){return b.length-a.length};
    val.sort(compare);
    console.log(val);

2 个答案:

答案 0 :(得分:1)

<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".fragments.HomeFragment"
android:fillViewport="true">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="25dp"
    android:layout_gravity="center"
    android:adjustViewBounds="true"
    android:src="@drawable/logo"/>

    <ListView
        android:id="@+id/listFemArrangementer"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:listSelector="@color/white"
        android:scrollbars="none">

    </ListView>

</LinearLayout>

您需要比较属性而不是对象。另外,您可能需要处理-1、0和1的所有情况。我留给你。看看现有的类似问题。

答案 1 :(得分:0)

您找到的不是对象键x,而是对象的长度,因此需要将a.length更改为a.x.length,将b.length更改为b.x.length < / p>