小编Sim*_*ler的帖子

根据另一个数组中的数据对数组进行排序

我有两个对象数组,如下所示:

items = [{"id":"5","tobuy":"1","name":"pop"},
         {"id":"6","tobuy":"1","name":"fish"},
         {"id":"7","tobuy":"0","name":"soda"}]
pkgs =  [{"item_id":"5","store":"Market","aisle":"3"},
         {"item_id":"6","store":"Market","aisle":"2"},
         {"item_id":"6","store":"Dept","aisle":"8"},
         {"item_id":"7","store":"Market","aisle":"4"}]
Run Code Online (Sandbox Code Playgroud)

我正在尝试对items数组进行排序,但我想利用pkgs数组中的数据.
pkgs数组中的"item_id"字段对应于items数组中的"id"字段.
例如,我想排序:

  • 首先按降序排序"tobuy"
  • 然后通过"商店"
  • 然后通过"过道"
  • 然后通过"名字"

虽然item_id和id在两个数组之间对应,但是没有1对1的关系.可能有0个或更多pkgs对应于任何给定项目.

(如果我有一个数据库,我只会加入表,但在JavaScript中我只有两个相关的数组).

我不确定如何构建比较器函数并传入第二个数组.

谢谢你的帮助.

javascript arrays sorting

8
推荐指数
1
解决办法
954
查看次数

有没有办法在最初显示表单时执行 TextFormField 上的 InputFormatters ?

inputFormatters在被指定TextFormField时,initialValue不被处理inputFormatters

这似乎很奇怪。有没有推荐的方法inputFormatters来格式化initialValue.

例如,我有一个 5 位数字(即 12345),应该在输入字段中用逗号分隔符 (12,345) 显示。默认情况下它显示为 12345,但只要我编辑该值,逗号分隔符就会出现。逗号分隔符应显示在初始值上。

flutter

8
推荐指数
1
解决办法
1227
查看次数

突出显示 DropdownButton 中的选定值(如 PopupMenuButton)

PopupMenuButton按下 a 时,当前选定的值会突出显示,在此处输入图片说明

但是当DropdownButton按下a 时,当前选定的值不会突出显示。 在此处输入图片说明

有没有办法突出显示 a 的选定值DropdownButton

这里有一些示例代码供参考:

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(home: MyHomePage());
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key}) : super(key: key);

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  String letter = 'A';

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('Popup Menu Button')),
      body: Column(
        crossAxisAlignment: CrossAxisAlignment.start,
        children: <Widget>[
          SizedBox(height: …
Run Code Online (Sandbox Code Playgroud)

flutter

7
推荐指数
1
解决办法
2874
查看次数

创建复杂元素的正确方法是什么?

在 jQuery 中创建以下 div 元素的最佳方法是什么?

<div class="btn-group">
  <button class="btn dropdown-toggle" title="Manage" data-toggle="dropdown">
    <span class="caret"></span>
  </button>
</div>
Run Code Online (Sandbox Code Playgroud)

我尝试了多种格式,但我似乎无法做到正确。

  var itemsButtonsDiv = $('<div><button><span></span></button></div>')
    .addClass("btn-group")
    .attr({
      title: "Manage",
      "data-toggle": "dropdown"
    })
    .find("button")
      .addClass("btn dropdown-toggle")
      .find("span")
        .addClass("caret")
  ;


  var itemsButtonsDiv = $("<div><button><span></span></button></div>", {
    "class": "btn-group",
    html: "  ??  Does everything else go here as one long text string  ??  "
  });
Run Code Online (Sandbox Code Playgroud)

我意识到在创建元素后必须单独附加元素,但我无法正确创建。

jquery

5
推荐指数
1
解决办法
1741
查看次数

创建一个倒数计时器,每 5 秒为列表中的每个值打印一次剩余时间

我正在尝试在 Flutter 中创建一个倒数计时器,它每 5 秒打印一次剩余时间,直到计时器用完,然后为值列表中的下一个值运行相同的倒数计时器。

下面的递归函数接近了,但它在进入下一个值之前等待“迭代”,List即使剩余时间更少Timer

import 'dart:async';

Future main() async {
  final _sequence = [21, 10, 8];
  final _iteration = 5;

  void _countdown(seq) async {
    if (seq.length > 0) {
      var duration = seq[0];
      print('Starting at $duration');
      Timer.periodic(Duration(seconds: _iteration), (timer) {
        var remaining = duration - timer.tick * _iteration;
        if (remaining >= 0) {
          print('$duration, $remaining');
        } else {
          timer.cancel();
          _countdown(seq.sublist(1));
        }
      });
    }
  }

  _countdown(_sequence);
}
Run Code Online (Sandbox Code Playgroud)

每次运行时,持续时间由_sequence列表中的值定义。

即使使用CountdownTimer(而不是 …

dart flutter

2
推荐指数
1
解决办法
8855
查看次数

如何布置各种高度的卡片列表?

我刚刚开始使用Flutter。

建议在屏幕上布置卡片列表的方法是什么?

某些卡片仅包含一个对象作为一行文本,而其他卡片包含多个对象作为文本行,该卡片中也应具有标题。

例如,这是我要完成的绘图。

在此处输入图片说明

Flutter不喜欢ListView里面的东西Card。它生成以下错误:

I/flutter (13243): ??? EXCEPTION CAUGHT BY RENDERING LIBRARY ??????????????????????????????????????????????????????????
I/flutter (13243): The following assertion was thrown during performResize():
I/flutter (13243): Vertical viewport was given unbounded height.
I/flutter (13243): Viewports expand in the scrolling direction to fill their container.In this case, a vertical
I/flutter (13243): viewport was given an unlimited amount of vertical space in which to expand. This situation
I/flutter (13243): typically happens when a scrollable widget is nested inside another …
Run Code Online (Sandbox Code Playgroud)

flutter

2
推荐指数
1
解决办法
8404
查看次数

底部导航栏有 5 个项目

当我尝试创建一个包含 5 个项目的 BottomNavigationBar 时,它会出错:

RangeError(索引):无效值:不在 0..2 范围内,包括:3

这是代码:

import 'package:flutter/material.dart';

void main() {
  runApp(new BottomNavDemo());
}

class BottomNavDemo extends StatefulWidget {
  @override
  _BottomNavDemoState createState() => new _BottomNavDemoState();
}

class _BottomNavDemoState extends State<BottomNavDemo> {
  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      title: 'my title',
      home: new Scaffold(
        bottomNavigationBar: new BottomNavigationBar(
          items: <BottomNavigationBarItem>[
            new BottomNavigationBarItem(
                title: new Text('One'), 
                icon: new Icon(Icons.home)),
            new BottomNavigationBarItem(
                title: new Text('Two'),
                icon: new Icon(Icons.terrain)),
            new BottomNavigationBarItem(
                title: new Text('Three'),
                icon: new Icon(Icons.bluetooth)),
            new BottomNavigationBarItem(
                title: …
Run Code Online (Sandbox Code Playgroud)

flutter

1
推荐指数
1
解决办法
3746
查看次数

标签 统计

flutter ×5

arrays ×1

dart ×1

javascript ×1

jquery ×1

sorting ×1