从数组乘法生成字符串

时间:2018-05-18 17:30:38

标签: javascript arrays string multiplication

我希望创建一个javascript函数,它通过数组乘法输出字符串。

数组的第一个数字将乘以第二个数字,产生如下字符串。

对于前。当:

console.log(repeatNumbers([[1, 10]]));
console.log(repeatNumbers([[1, 2], [2, 3]]));

结果将是:

1111111111
11, 222

我正在努力克服简单的乘法输出,例如1 * 10 = 10,并产生一个完整的字符串(不带逗号)。

任何建议都会很棒 - 谢谢。

2 个答案:

答案 0 :(得分:3)

实际上你可以使用map array覆盖repeat,然后应用string的{​​{1}}函数(你必须从number解析到string repeatNumbers = (array) => array.map(item => item[0].toString().repeat(item[1])); console.log(repeatNumbers([ [1, 10] ])); console.log(repeatNumbers([ [1, 2], [2, 3] ]));)。

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".UploadImage">
<LinearLayout
    android:id="@+id/layout_button"
    android:orientation="horizontal"
    android:layout_alignParentTop="true"
    android:weightSum="2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <Button
        android:id="@+id/btnChoose"
        android:text="Choose"
        android:layout_weight="1"
        android:layout_width="0dp"
        android:layout_height="wrap_content" />

    <Button
        android:id="@+id/btnUpload"
        android:text="Upload"
        android:layout_weight="1"
        android:layout_width="0dp"
        android:layout_height="wrap_content" />
</LinearLayout>



<ImageView
    android:id="@+id/imgView"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

</android.support.constraint.ConstraintLayout>

答案 1 :(得分:1)

您可以使用数组构造函数来创建给定长度的数组。然后使用.fill数组方法用正确的东西填充新数组。最后,您可以使用join将填充的数组转换回字符串。在您的情况下,对于每一对,第一个元素是用数据填充的元素,第二个元素是所需的长度。

对传递的数组中的每个项目执行该过程(使用map),并使用逗号连接它们,然后从示例中获得结果:

&#13;
&#13;
function repeatNumbers(arr) {
  return arr
    .map(pair => Array(pair[1]).fill(String(pair[0])).join(""))
    .join(", ");
}

console.log(repeatNumbers([[1, 10]]));
console.log(repeatNumbers([[1, 2], [2, 3]]));
&#13;
&#13;
&#13;