小编miy*_*avv的帖子

从包含数组属性的基础对象中选择性地创建对象的新数组

我有一个名为的对象obj,它将用作创建某种格式的对象的新数组的基础。

我的基础对象:

var obj={
  "en": [{
    "faq": "faq",
    "about": "about"
    }],
  "hi": [{
    "faq": "aksar-poochhe-jaane-vaale",
    "about": "hamaare-baare"
    }]    
}
Run Code Online (Sandbox Code Playgroud)

我创建了一个getObj()接受两个参数lang和基础对象的函数obj


范例场景

当我打电话时:

getObj("en", obj);
Run Code Online (Sandbox Code Playgroud)

我应该得到:

[{
  "url": "/en/faq",
  "links": [
     { lang: 'en', url: '/en/faq' },
     { lang: 'hi', url: '/hi/aksar-poochhe-jaane-vaale' }
   ]
 },
 {
  "url": "/en/about",
  "links": [
     { lang: 'en', url: '/en/about' },
     { lang: 'hi', url: '/hi/hamaare-baare' }
   ]
 }]
Run Code Online (Sandbox Code Playgroud)

当我打电话时:

getObj("hi", obj);
Run Code Online (Sandbox Code Playgroud)

我应该得到:

 [{
  "url": "/hi/aksar-poochhe-jaane-vaale", 
  "links": [ …
Run Code Online (Sandbox Code Playgroud)

javascript arrays object ecmascript-6

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

How to convert object properties string to integer in javascript

I would like to know how to convert object properties string to integer in javascript. I have a obj, which if has property value is number string convert to number in javascript

var obj={
  ob1: {id: "21", width:"100",height:"100", name: "image1"},
  ob2: {id: "22", width:"300",height:"200", name: "image2"}
}


function convertIntObj (obj){
    Object.keys(obj).map(function(k) { 
            if(parseInt(obj[k])===NaN){
              return obj[k] 
            }
            else{
              return parseInt(obj[k]);
            }
        });
}

var result = convertIntObj(obj);

console.log(result)
Run Code Online (Sandbox Code Playgroud)

Expected Output:

[
  {id: 21, width:100,height:100, name: "image1"},
  {id: 22, width:300,height:200, name: …
Run Code Online (Sandbox Code Playgroud)

javascript arrays object javascript-objects

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

函数在反应中被多次调用

我想知道为什么在调度时多次调用该函数。还有,有没有更好的办法,

getData = (value) =>{
  const body = {
    value: value,
    cn: "TH"
  }
return body;
}

renderData(){
  console.log("starts");
  this.props.dispatch(queryData(this.getData(10)));// called repeatedly 
}

render(){
  return(
   <div>{this.renderData()}</div>
  ) 
}

Run Code Online (Sandbox Code Playgroud)

我已经更新了相同类型的不同场景,我需要知道有没有其他更好的方法。

场景二

getData = () =>{
  const body = {
    value: value,
    cn: "TH"
  }
return body;
}
componentDidMount=()=>{
  this.props.dispatch(queryData(this.getData()))
}
componentDidUpdate = () => {
const {allstate} = this.props.querydata 
  if(this.props.querydata){
    this.renderState(allstate);
  }
}
renderState = (data) => {
  const getId = data.map(e=>e.id); //will get array of values [2, 3, 4]
  getid.map(e=> …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs redux redux-saga react-redux

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

如何在javascript中将数组对象更改为嵌套对象

我想知道如何在 javascript 中将数组对象更改为嵌套对象。我有list数组对象,如何转换为嵌套对象

function nestedobj(arrlist){
  var result ={};
  result.list1 = arrlist[0];
  result.list2 = arrlist[1]
  return list;
}


var list= [
  {id: 1, cn: "SG"},
  {id: 2, cn: "TH"}
]

var list1= [
  {id: 1, cn: "SG"},
  {id: 2, cn: "TH"},
  {id: 3, cn: "MY"}
]

var listobj = this.nestedobj(list);
var listobj1 = this.nestedobj(list1);

console.log(listobj)
console.log(listobj1)
Run Code Online (Sandbox Code Playgroud)

预期产出

{
  "list1":{"id": 1, "cn": "SG"},
  "list2":{"id": 2, "cn": "TH"}
}

{
  "list1":{"id": 1, "cn": "SG"},
  "list2":{"id": 2, "cn": "TH"},
  "list3":{"id": 3, "cn": …
Run Code Online (Sandbox Code Playgroud)

javascript arrays object

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

如何在JavaScript中将单个函数用于多个输入

我想知道如何对javacript中的两个输入使用单一方法。

我有一个具有两个输入字段的表单,调用一个函数来格式化currecny。我需要知道如何为两个不同的输入申请相同的功能。

  formatCurrency(e){
    var myinput = e.target.value;
      var val = myinput;
      val = val.replace(/[^0-9\.]/g,'');      
      if(val != "") {
        var valArr = val.split('.');
        valArr[0] = (parseInt(valArr[0],10)).toLocaleString();
        val = valArr.join('.');
      }      
     document.getElementById("samount").value = val;
  }

  formatRCurrency(e){
    var myinput = e.target.value;
      var val = myinput;
      val = val.replace(/[^0-9\.]/g,'');      
      if(val != "") {
        var valArr = val.split('.');
        valArr[0] = (parseInt(valArr[0],10)).toLocaleString();
        val = valArr.join('.');
      }      
      document.getElementById("tamount").value = val;
  }

  <input type="text" id="samount" name="samount" class="form-control"  @keyup=${this.formatSCurrency} >
  <input type="text" id="tamount" name="tamount" class="form-control" @keyup=${this.formatRCurrency} >

Run Code Online (Sandbox Code Playgroud)

如何使单个功能可用于两个输入。

javascript forms jquery html5 function

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

如果javascript中的键值相同,则合并对象数组

如果id在 javascript 中相同,我想知道如何组合数组值。

我试过下面的代码

let result = this.getData(obj);

function getData(obj) {
 return obj.map(e=>({procode: e.prcode, id: e.id});
}

Run Code Online (Sandbox Code Playgroud)
var obj= [
  {
    id: "1",
    prcode: "dessert"
  },{
    id: "1",
    prcode: "snacks"
  }, {
   id: "2",
   prcode: "cafe"
 }, {
  id: "4",
  prcode: "all"
}
]

Run Code Online (Sandbox Code Playgroud)

预期输出:

result = [
 {id: "1", prcode: "dessert,snacks"},
 {id: "2", prcode: "cafe"},
 {id: "4", prcode: "all"}
]

Run Code Online (Sandbox Code Playgroud)

javascript arrays object

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